private void btnRunWork_Click(object sender, EventArgs e) { if (_HardWork == null) { _HardWork = new HardWork(); } else { _HardWork.Stop(); _HardWork = null; } btnRunWork.Checked = _HardWork != null; }
void Work(HardWork hard) { while (true) { Socket socket = null; lock (locker) if (tasks.Count > 0) { socket = tasks.Dequeue(); if (socket == null) { return; } } if (socket != null) { hard(socket); } else { wh.WaitOne(); } } }
public Worker(HardWork hard) { worker = new Thread(() => Work(hard)); worker.Start(); }