Click here to Skip to main content
15,906,333 members
Home / Discussions / C#
   

C#

 
GeneralRe: can't find the source of Collection was Modified Exception Pin
OriginalGriff11-Nov-17 20:23
mveOriginalGriff11-Nov-17 20:23 
QuestionHow to simplify my code? Pin
Member 1347915010-Nov-17 12:09
Member 1347915010-Nov-17 12:09 
AnswerRe: How to simplify my code? Pin
Afzaal Ahmad Zeeshan10-Nov-17 12:26
professionalAfzaal Ahmad Zeeshan10-Nov-17 12:26 
QuestionUnhandled Argument Exception error in System.Drawing.dll Pin
zs6msd8-Nov-17 0:05
zs6msd8-Nov-17 0:05 
AnswerRe: Unhandled Argument Exception error in System.Drawing.dll Pin
OriginalGriff8-Nov-17 0:28
mveOriginalGriff8-Nov-17 0:28 
Questionlibrary for connecting oracle from c#form Pin
Member 135093657-Nov-17 20:04
Member 135093657-Nov-17 20:04 
AnswerRe: library for connecting oracle from c#form Pin
Pete O'Hanlon7-Nov-17 21:34
mvePete O'Hanlon7-Nov-17 21:34 
GeneralRe: library for connecting oracle from c#form Pin
Member 135093658-Nov-17 21:26
Member 135093658-Nov-17 21:26 
GeneralRe: library for connecting oracle from c#form Pin
Member 135093658-Nov-17 21:26
Member 135093658-Nov-17 21:26 
AnswerRe: library for connecting oracle from c#form Pin
Mycroft Holmes8-Nov-17 14:18
professionalMycroft Holmes8-Nov-17 14:18 
QuestionGetting Data from web : C# failed while Excel works Pin
PozzaVecia5-Nov-17 9:06
PozzaVecia5-Nov-17 9:06 
AnswerRe: Getting Data from web : C# failed while Excel works Pin
PozzaVecia5-Nov-17 9:19
PozzaVecia5-Nov-17 9:19 
QuestionWrite audio to USB Modem via COM Port Pin
ManojKumarShah20174-Nov-17 22:45
ManojKumarShah20174-Nov-17 22:45 
QuestionRe: Write audio to USB Modem via COM Port Pin
Eddy Vluggen4-Nov-17 23:34
professionalEddy Vluggen4-Nov-17 23:34 
AnswerRe: Write audio to USB Modem via COM Port Pin
OriginalGriff4-Nov-17 23:35
mveOriginalGriff4-Nov-17 23:35 
GeneralRe: Write audio to USB Modem via COM Port Pin
ManojKumarShah20175-Nov-17 0:57
ManojKumarShah20175-Nov-17 0:57 
GeneralRe: Write audio to USB Modem via COM Port Pin
OriginalGriff5-Nov-17 1:05
mveOriginalGriff5-Nov-17 1:05 
GeneralRe: Write audio to USB Modem via COM Port Pin
ManojKumarShah20175-Nov-17 2:31
ManojKumarShah20175-Nov-17 2:31 
GeneralRe: Write audio to USB Modem via COM Port Pin
OriginalGriff5-Nov-17 2:40
mveOriginalGriff5-Nov-17 2:40 
GeneralRe: Write audio to USB Modem via COM Port Pin
ManojKumarShah20175-Nov-17 3:46
ManojKumarShah20175-Nov-17 3:46 
GeneralRe: Write audio to USB Modem via COM Port Pin
ManojKumarShah20175-Nov-17 4:10
ManojKumarShah20175-Nov-17 4:10 
QuestionMultithreaded function calls Pin
Kenneth Haugland4-Nov-17 4:41
mvaKenneth Haugland4-Nov-17 4:41 
Assume that I have a pipe that consists of sections of variable radiuses and that I want to make calculations at different frequencies. So I want the calculations done at different threads for each frequency, but the list of pipe sections stays the same.
public class PipeSection
{
    public PipeSection(double radius)
    {
        this.Radius = radius;
    }

    public double Radius { get; set; }


    public double Calculate(double Frequency)
    {
        return Frequency * this.Radius;
    }

}

To run the frequencies in parallel I use Rx:
CancellationTokenSource ctr = new CancellationTokenSource();
       List<PipeSection> wn = new List<PipeSection>();

       public MainWindow()
       {
           InitializeComponent();

           PipeSection[] input = { new PipeSection(5), new PipeSection(6), new PipeSection(7) };

           wn.AddRange(input);

           //Calcualte at the frequencies 0,100,2000,3000
           var FreqData = new double[] { 0, 100, 2000, 3000 }.ToObservable<double>();

           FreqData
               //Off the ui thread
               .ObserveOn(Scheduler.Default)
               //Run each thread seperatly
               .SelectMany(x => Task.Run<double>(() => DoCalcualtions(x,wn), ctr.Token))
               //Back to the UI thread
               .ObserveOnDispatcher()
               //Subscribe and start the calcualtions
               .Subscribe(args => {
                                   //Update the progressbar when a thread is completed
                                   pgbProgress.Value += 1;
                                   //Tell me what thread is completed
                                   txtText.Text += Environment.NewLine + args.ToString();
                                   },
                           () => {
                                   //All done, here I could do sorting etc.
                                   txtText.Text += Environment.NewLine + "All done";
                                 }
                           );
       }

       private double DoCalcualtions(double Freq, List<PipeSection> input)
       {
           double result=1;
           for (int i = 0; i < input.Count(); i++)
               result *= input[i].Calculate(Freq);

           return result;
       }

This does compile and run, but I have some questions regarding if the multithread calls:
1) Will I have to clone my list of Pipesections for each frequency (i.a. for each thread I want to run) ?
2) Can the DoCalcualtion function now be accessed in parallel or will I have to move it inside the PipeSection class to ensure this?
3) Is there a much better way of doing this?

-Kenneth
AnswerRe: Multithreaded function calls Pin
Sascha Lefèvre4-Nov-17 6:13
professionalSascha Lefèvre4-Nov-17 6:13 
GeneralRe: Multithreaded function calls Pin
Kenneth Haugland4-Nov-17 6:49
mvaKenneth Haugland4-Nov-17 6:49 
GeneralRe: Multithreaded function calls Pin
Sascha Lefèvre4-Nov-17 7:01
professionalSascha Lefèvre4-Nov-17 7:01 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.