日期:2014-05-18  浏览次数:21055 次

C#如何创建多参数线程
我需要在两个窗口中同时进行Paint事件,当其中其中一个正常工作时 另一个就出问题(CPU占用25%,而且时间也在一直走着),想创建线程,但paint是个多参数的方法(picturebox1_Paint(object sender,PainteEventArgs e)),创建起来有点麻烦
不知哪位有好的解决方法



------解决方案--------------------
()=>{Method(param,param1...);}
------解决方案--------------------
定义一个专门的线程类,重写paint方法
------解决方案--------------------

我有一个例,楼主可以仔细看看下面的。
C# code
/// <summary>
///  有多参数的
/// </summary>
private void allpara(object para)
{
    if (para != null)
    {
        string sResult = "";
        List<string> list = (List<string>)para;
        foreach (string l in list)
        {
            sResult += l + "\n";
        }
        MessageBox.Show(sResult,"提示",MessageBoxButtons.OK);
    }
}
//有多参数的 多线程
private void button4_Click(object sender, EventArgs e)
{
    ParameterizedThreadStart ts = new ParameterizedThreadStart(allpara);
    Thread t = new Thread(ts);
    t.IsBackground = true;
    t.Start(new List<string>() { "刘得华","胡紧掏","辣没子"});
}

------解决方案--------------------
探讨你理解错了 我是为picturebox1_Paint(object sender,PainteEventArgs e)函数创建进程