我想在C#Project中获取数据时等待Event.
当程序读取一些数据时GetData其他程序在读取此数据结束时创建一个事件(调用EventForGetData).
所以,我需要等待完成读取的EventForGetData.
我为此任务编写了此代码,但相信此代码可能会写得更优.
public static bool WaitEvent = true;
public void EventForGetData(string variable)
{
WaitEvent = false;
}
public static string ForWaitGetData()
{
WaitEvent = true;
while (WaitEvent)
{
System.Threading.Thread.Sleep(5);
Application.DoEvents();
}
return Variable;
}
public object GetData(){
// start read data
...
// Wait for finish to read data
ForWaitGetData();
// finish read data
...
return MyObject;
}
最佳答案 尝试使用任务第一个任务是获取您的数据,最后进行处理或启动您的活动:
例
Task task = Task.Factory.StartNew(() =>
{
//put you code here the first one
}).ContinueWith((rs) =>{
//Launch your event or anything you want
});
注意:您将放在ContinueWith中的代码将在您在StartNew中编写的代码之后执行.