微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 在应用程序中等待事件

我想在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中编写的代码后执行.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐