用线程池时遇到的问题
private void pbWhiteBoard_MouseMove(object sender, MouseEventArgs e)
{
if (MouseButtons == MouseButtons.Left)
{
edit_PaintMsg.DrawAction = ExWhiteBoard.DrawAction.EXE;
edit_PaintMsg.DrawPoint = new Point(e.X, e.Y); //这里PaintMsg 是自定义的结构
ThreadPool.QueueUserWorkItem(new WaitCallback(SendPaintMsg), edit_PaintMsg);
}
}
private void SendPaintMsg(object stateInfo) //这个如果是做为值传过去了,那就不用担心同步问题,
//因为在线程里已经备份了值,前面edit_PaintMsg怎么改无所谓
//关键时这个object 传的是值还是引用?还是不能传?不能传怎么办?
{
string msg = stateInfo.ToString();
。
private void pbWhiteBoard_MouseMove(object sender, MouseEventArgs e)
{
if (MouseButtons == MouseButtons.Left)
{
edit_PaintMsg.DrawAction = ExWhiteBoard.DrawAction.EXE;
edit_PaintMsg.DrawPoint = new Point(e.X, e.Y); //这里PaintMsg 是自定义的结构
ThreadPool.QueueUserWorkItem(new WaitCallback(SendPaintMsg), edit_PaintMsg);
}
}
private void SendPaintMsg(object stateInfo) //这个如果是做为值传过去了,那就不用担心同步问题,
//因为在线程里已经备份了值,前面edit_PaintMsg怎么改无所谓
//关键时这个object 传的是值还是引用?还是不能传?不能传怎么办?
{
string msg = stateInfo.ToString();
。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货