簡體   English   中英

為什么消息框從不顯示?

[英]Why does the messagebox never display?

給定

    static void Main()
    {
        Form f = new Form();
        f.Show();
        Action a = () => MessageBox.Show("hi");            
        Task.Factory.FromAsync(f.BeginInvoke(a), (ar) => a.EndInvoke(ar));
        Console.Read();
    }
  • 我從沒有看到消息框顯示為“ hi”。
  • 其次,從Async使用Task.Factory時是否仍需要調用EndInvoke(ar)

當您從線程(而不是UI線程)中調用MessageBox時,它將永遠不會顯示。

解決此問題的正確方法是,從另一個線程上調用的方法引發一個事件,然后讓UI線程訂閱該事件。 在事件處理程序中,您可以編寫代碼以顯示MessageBox。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM