sdfgrtyu 2015-01-12 07:24 采纳率: 0%
浏览 1670
已采纳

程序运行和调试的问题

List userList = new List
{
new UserModel{ UserName="jiejiep", UserAge = 26},
new UserModel{ UserName="xiaoyi", UserAge = 25},
new UserModel{ UserName="zhangzetian", UserAge=24}
};
public class TempClass
{
public UserModel um
{
get;
set;
}

    public void ShowMessage(object obj)
    {
        Thread.Sleep(1000);
        MessageBox.Show(um.UserName);
    }
}

复制代码
复制代码
TempClass tempCls = new TempClass();
foreach (var u in userList)
{
tempCls.um = u;

         ThreadPool.QueueUserWorkItem((obj) =>
         {
            tempCls.ShowMessage(obj);
         });
    }

调试结果和运行结果不同,能不能给我解释一下
都是高手,但是解释的不一样,我该相信谁的?
cazhy和bdmh你俩说的是一个意思吗?

  • 写回答

7条回答 默认 最新

  • threenewbee 2015-01-12 15:24
    关注

    多线程程序如果不同步,运行结果无法预料。因为线程谁执行快,谁执行慢,谁先谁后都是随机的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?