1
A
回答
1
是的,它們是相同的線程。你會想要產生一個新的線程來處理主要的處理。
下面的示例只是一個按鈕,它會睡眠(10秒鐘)主線程,一旦Button_Click被調用並且「睡眠」開始,整個UI變得無響應。
希望有所幫助。
的.xaml
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Button Content="Button" HorizontalAlignment="Left" Margin="231,142,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
</Grid>
的.cs
using System.Threading;
using System.Windows;
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Thread.Sleep(10000);
}
}
}
編輯包括語法校正和採樣/示例代碼的解釋。
1
我們稱之爲Application.Run
(或者你啓動WPF的任何機制)的線程是UI線程。通常,這是您的應用程序啓動的線程。
如果你想在不阻塞UI線程的情況下進行大量處理,你應該在新線程中完成。這裏有一個例子:
private async void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
await Task.Run(() => Thread.Sleep(1000)); //Assume Thread.Sleep is your heavy processing
}
1
這取決於你在主線程中的意思。如果你的意思是運行Main()
的線程,那麼這是可能的。你只需要產生它,使它成爲STA,並撥打Application.Run()
,就像你在Main()
中做的那樣。
此外,WPF可以有多個UI線程,因此有多個調度器。每個UI線程都可以訪問僅從當前線程創建的元素(以及當前線程的分派器)。
如果您想避免阻塞UI線程,那麼情況並非如此,請考慮使用async\await
來代替。
+0
所以每個UI都有自己獨特的線程?或全部共享應用程序啓動主線程? – MonsterMMORPG
相關問題
- 1. C#WPF應用程序中主線程的職責是什麼?
- 2. Wpf應用程序和線程
- 3. 此代碼是否在與主UI線程不同的線程中執行
- 4. UI線程和後臺線程使用相同全局變量
- 5. C#跨線程。 IRC流線程到主UI線程
- 6. Android子線程調用主線程UI
- 7. 如何從線程更新WPF應用程序中的UI?
- 8. WPF - 完成和UI線程
- 9. WPF System.Timer和UI線程
- 10. 多線程COMObject和UI線程(C#)
- 11. C#winforms應用程序線程同步
- 12. 在主線程中處理wpf應用程序中的呼叫
- 13. 是否有從工作線程切換到主(UI)線程?
- 14. WPF中的多線程UI
- 15. 主(UI)線程是否發生回調?
- 16. NSURLConnection是否阻止主/ UI線程
- 17. C#應用程序線程
- 18. 應用程序時,從後臺線程和主線程在同一時間
- 19. 單線程應用程序是否線程安全
- 20. 同步測試線程,UI線程和CursorLoader線程
- 21. 線程C#UI
- 22. c#windows應用程序中的線程
- 23. C++中的多線程應用程序
- 24. WPF C#線程
- 25. WPF線程C#
- 26. 線程執行是否在IDE中與C++中的EXE應用程序不同?
- 27. 多線程訪問多線程應用程序中的相同代碼
- 28. 一個線程在iPhone應用程序中殺死另一個線程(兩個線程都是主線程)?
- 29. WPF主題與加入()塊UI線程
- 30. C#windows應用程序中的兩個UI線程
主線程是什麼意思?這就是我們通常所說的UI線程。 –
@EmperorAiman我同意你的看法,但即使是我的大學講師也感到困惑,並不知道:D – MonsterMMORPG