public ThreadPoolTestPage()
{
InitializeComponent();
}
private void txtMsgQueueUserWorkItem_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
System.Threading.ThreadPool.QueueUserWorkItem(DoWork, DateTime.Now);
}
private void DoWork(object state)
{
DateTime dtJoin = (DateTime)state;
DateTime dtStart = DateTime.Now;
System.Threading.Thread.Sleep(3000);
DateTime dtEnd = DateTime.Now;
this.Dispatcher.BeginInvoke(() =>
{
txtMsgQueueUserWorkItem.Text += string.Format("\r\nInto-quene time: {0}start time: {1}end time: {2}",
dtJoin.ToString(), dtStart.ToString(), dtEnd.ToString());
});
}
private void txtRegisterWaitForSingleObject_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
System.Threading.AutoResetEvent done = new System.Threading.AutoResetEvent(false);
RegisteredWaitHandlePacket packet = new RegisteredWaitHandlePacket();
packet.Handle = System.Threading.ThreadPool.RegisterWaitForSingleObject
(
done,
WaitOrTimer,
packet,
100,
false
);
{
InitializeComponent();
}
private void txtMsgQueueUserWorkItem_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
System.Threading.ThreadPool.QueueUserWorkItem(DoWork, DateTime.Now);
}
private void DoWork(object state)
{
DateTime dtJoin = (DateTime)state;
DateTime dtStart = DateTime.Now;
System.Threading.Thread.Sleep(3000);
DateTime dtEnd = DateTime.Now;
this.Dispatcher.BeginInvoke(() =>
{
txtMsgQueueUserWorkItem.Text += string.Format("\r\nInto-quene time: {0}start time: {1}end time: {2}",
dtJoin.ToString(), dtStart.ToString(), dtEnd.ToString());
});
}
private void txtRegisterWaitForSingleObject_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
System.Threading.AutoResetEvent done = new System.Threading.AutoResetEvent(false);
RegisteredWaitHandlePacket packet = new RegisteredWaitHandlePacket();
packet.Handle = System.Threading.ThreadPool.RegisterWaitForSingleObject
(
done,
WaitOrTimer,
packet,
100,
false
);