我正在编写一个Visual C#程序,它在一个次要线程上执行一系列连续的操作循环。有时候当该线程完成一个任务时,我希望它触发一个事件处理程序。我的程序可以做到这一点,但是当事件处理程序被触发时,次要线程会等待事件处理程序完成后才继续线程。我该如何让它继续运行?以下是我当前的代码结构...
class TestClass
{
private Thread SecondaryThread;
public event EventHandler OperationFinished;
public void StartMethod()
{
...
SecondaryThread.Start(); //start the secondary thread
}
private void SecondaryThreadMethod()
{
...
OperationFinished(null, new EventArgs());
... //This is where the program waits for whatever operations take
//place when OperationFinished is triggered.
}
}
这段代码是我设备API的一部分。当OperationFinished事件被触发时,我希望客户端应用程序能够根据需要(例如更新GUI)执行任何操作,而不会中断API操作。
另外,如果我不想向事件处理程序传递任何参数,我是否可以使用OperationFinished(null, new EventArgs())
的语法?