Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么messagebox从不显示?_C# - Fatal编程技术网

C# 为什么messagebox从不显示?

C# 为什么messagebox从不显示?,c#,C#,给定 我从未看到messagebox显示hi。 第二,在使用Async中的Task.Factory时,是否仍然需要调用EndInvokear? 当你从一个线程(而不是UI线程)调用MessageBox时,它永远不会出现 处理这个问题的正确方法是,从正在另一个线程上调用的方法引发一个事件,并让UI线程订阅它。在eventhandler中,您可以编写代码来显示MessageBox。当您从除UI线程之外的线程调用MessageBox时,它将永远不会显示 处理这个问题的正确方法是,从正在另一个线程上调用

给定

我从未看到messagebox显示hi。 第二,在使用Async中的Task.Factory时,是否仍然需要调用EndInvokear?
当你从一个线程(而不是UI线程)调用MessageBox时,它永远不会出现


处理这个问题的正确方法是,从正在另一个线程上调用的方法引发一个事件,并让UI线程订阅它。在eventhandler中,您可以编写代码来显示MessageBox。

当您从除UI线程之外的线程调用MessageBox时,它将永远不会显示

处理这个问题的正确方法是,从正在另一个线程上调用的方法引发一个事件,并让UI线程订阅它。在eventhandler中,您可以编写代码来显示MessageBox。

使用Task.Factory.FromAsync时是否仍需要调用EndInvoke?使用Task.Factory.FromAsync时是否仍需要调用EndInvoke?
    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();
    }