如何在Universal应用程序中从ManualResetEvent获取回调?

时间:2015-10-21 06:35:05

标签: c# windows-runtime windows-10 win-universal-app

在通用(Windows 10)应用中,我希望在WaitHandle发出信号时收到回电(在我的情况下为ManualResetEvent)。我该如何实现这一目标?通常我会使用ThreadPool.RegisterWaitForSingleObject(),但是唉,ThreadPool就像渡渡鸟一样。

任何其他(高效 - 非线程阻塞)替代方案?

1 个答案:

答案 0 :(得分:1)

.Net for UWP中的ThreadPool类没有RegisterWaitForSingleObject方法。

正如汉斯建议的那样,你可以开始一个新的线程来等待信号解决。

    private static ManualResetEvent mre = new ManualResetEvent(false);

    public MainPage()
    {
        this.InitializeComponent();

        Task.Run(() => {
            mre.WaitOne();

            Debug.WriteLine("do sth else"); 
        });
    }



    private void button_Click(object sender, RoutedEventArgs e)
    {
        mre.Set(); 
    }