Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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#UI元素的独立线程_C#_Wpf_Multithreading_Combobox - Fatal编程技术网

C#UI元素的独立线程

C#UI元素的独立线程,c#,wpf,multithreading,combobox,C#,Wpf,Multithreading,Combobox,我有一个组合框,其isEditable属性为true。我想做的是模仿一个搜索框(比如imdb.com上的搜索框)。在这个组合框中,我需要加载图像列表和标题。ComboBox中的元素根据用户在其中键入的内容进行加载 主要的问题是,我的应用程序在加载ComboBox元素时冻结,所以我认为为ComboBox创建一个单独的线程是一个好主意,但我不知道这是不是最好的主意,也不知道我该怎么做 为此,您可以使用backgroundworker,它将充当一个单独的线程,并保持您的UI响应 private voi

我有一个组合框,其isEditable属性为true。我想做的是模仿一个搜索框(比如imdb.com上的搜索框)。在这个组合框中,我需要加载图像列表和标题。ComboBox中的元素根据用户在其中键入的内容进行加载


主要的问题是,我的应用程序在加载ComboBox元素时冻结,所以我认为为ComboBox创建一个单独的线程是一个好主意,但我不知道这是不是最好的主意,也不知道我该怎么做

为此,您可以使用
backgroundworker
,它将充当一个单独的线程,并保持您的
UI
响应

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
  {
   //Some task
  }
启动后台工作程序,如下所示:

backgroundWorker1.RunWorkerAsync();
这将在后台执行一些逻辑,而不会影响UI


有关更多信息,请参阅此

,只需为其创建一个线程即可。问题真的很广泛,你应该先读一读这个话题,然后再提出一个更具体的问题。可能你的观点是错误的。控件保留在主线程上,您需要分离加载部分,以便它可以在另一个线程上运行(sansgui)。