我想在我的 C# 项目中获取数据时等待事件。
当程序读取一些数据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 中编写的代码之后执行。
关于c# - 应用程序中的等待事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36604746/