Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private BackgroundWorker[] Workers;
- private int MaxWorkers = 10;
- private Queue<string> Clients = new Queue<string>();
- private void _StartNewClient(BackgroundWorker bw)
- {
- if (Clients.Count > 0)
- {
- string md5nummer = Clients.Dequeue();
- Debug.WriteLine("Starting " + md5nummer);
- bw.RunWorkerAsync(md5nummer);
- }
- if (Clients.Count == 0)
- {
- }
- }
- //BackgroundWorker ~> Task
- private void bw_DoWork(object sender, DoWorkEventArgs e)
- {
- Debug.WriteLine("Working " + e.Argument.ToString());
- ~DO SMTH
- Debug.WriteLine("Worker # " + e.Argument.ToString());
- e.Result = e.Argument.ToString();
- }
- //Background-Worker-Finished
- private void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
- {
- solved++;
- if (Clients.Count > 0)
- {
- Debug.WriteLine("Completed " + e.Result);
- _StartNewClient((BackgroundWorker)sender);
- }
- if (Clients.Count == 0)
- {
- bool isAnyBusy = true;
- for (int i = 0; i < MaxWorkers; i++)
- {
- if (Workers[i].IsBusy != true)
- {
- isAnyBusy = false;
- }
- else { isAnyBusy = true; }
- }
- if (!isAnyBusy && !finishesMsgShown)
- {
- finishesMsgShown = true;
- }
- }
- }
- //Start Event
- private void button2_Click(object sender, EventArgs e)
- {
- MaxWorkers = int.Parse(numericUpDown1.Value.ToString());
- for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
- {
- Clients.Enqueue(i.ToString());
- Debug.WriteLine("Added: " + i.ToString());
- }
- Workers = new BackgroundWorker[MaxWorkers];
- for (int i = 0; i < MaxWorkers; i++)
- {
- Workers[i] = new BackgroundWorker();
- Workers[i].WorkerSupportsCancellation = true;
- Workers[i].DoWork += new DoWorkEventHandler(bw_DoWork);
- Workers[i].RunWorkerCompleted += new
- RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
- _StartNewClient(Workers[i]);
- }
- Debug.WriteLine("Finished Click handler");
- }
- ]]></Code>
- </Snippet>
- </CodeSnippet>
- </CodeSnippets>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement