說明:將方法排入隊列以便執行,WaitCallback,表示要執行的方法。如果將方法成功排入隊列,則為 true;否則為 false。
樣本:addtest方法需要比較長的時間來響應,因此在button1_Click被點擊以後,程式會失去響應,使用ThreadPool.QueueUserWorkItem 後,頁面會繼續響應其他時間,等addtest執行結束後,響應結果。
<Window x:Class="WpfAppThread.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<Button Height="23" HorizontalAlignment="Left" Margin="9,23,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click">ButtonOne</Button>
<Button Height="23" Margin="102,23,101,0" Name="button2" VerticalAlignment="Top" Click="button2_Click">ButtonTwo</Button>
</Grid>
</Window>
private void button1_Click(object sender, RoutedEventArgs e)
{
ThreadPool.QueueUserWorkItem(new WaitCallback(addtest),"Testaa");
//addtest();
}
private void addtest(object aa)
{
long result=0;
for (int i = 0; i < 1000000000; i++)
{
result += i;
}
MessageBox.Show(result.ToString()+aa.ToString());
}
private void button2_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("two");
}