110,535
社区成员
发帖
与我相关
我的任务
分享
//线程池的使用测试代码段====================================
delegate void DelegatePaintMain(Bitmap bitmap);
private void ThreadPoolPaintMain(object obj)
{
DelegatePaintMain d = new DelegatePaintMain(
PicturePaintMain);
Bitmap bitmap;
lock (MACHINE_OPERATE_LOCK)
{
bitmap = GetBackGroundPicture();
}
//测试代码段
//pictureBox_Main.BackgroundImage = bitmap;
this.Invoke(d, bitmap);
}
//使用线程池的刷新方法
ThreadPool.QueueUserWorkItem(new WaitCallback(
ThreadPoolPaintMain),new object());
private void ThreadPoolDealWithMainData(object m_Data)
{
//处理数据并显示,该方法由线程池管理
string str = m_Data as string;
lock (MACHINE_OPERATE_LOCK)
{
//更新对象的数据,速度绝对是10ms以内,绝对没有BUG抛出
DataObject.Updata(str);
}
}
private void ThreadPoolPaintMain(object obj)
{
DelegatePaintMain d = new DelegatePaintMain(
PicturePaintMain);
Bitmap bitmap;
if(needUpdate)
{
DataObject.Updata(str);
}
bitmap = GetBackGroundPicture();
//测试代码段
//pictureBox_Main.BackgroundImage = bitmap;
this.Invoke(d, bitmap);
}
像这样合并不行吗?