C#中以类的实例作为线程参数应该怎么操作 尝试过使用“ParameterizedThreadStart”以及“创建线程实现类”两种方式进行线程参数传递string型参数可以正常传递当传递类的实例时总是出问题,请指点一下应该怎样操作,给些方向性的建议也可以,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果是在3.0下面的话可以用lambda表达式利用闭包来解决线程委托方法含参数的问题 private void Proc(object obj){ List<int> list = (List<int>)obj;}// 线程调用List<int> list = new List<int>();Thread thread = new Thread(new ParameterizedThreadStart(Proc));thread.Start(list); 您好,感谢回复!// 线程调用List<int> list = new List<int>();后面是不是通过Add方法将要传递的类实例添加到list 中然后再传递thread.Start(list)?按照上面的方法,进行尝试,跟踪变量出现如下问题麻烦指点一下,谢谢! 您好,感谢回复!// 线程调用List<int> list = new List<int>();后面是不是通过Add方法将要传递的类实例添加到list 中然后再传递thread.Start(list)?按照上面的方法,进行尝试,跟踪实例对象的相关字段时出现如下提示信息“由于以前的函数求值超时,函数求值被禁用。必须继续执行才能重新启用函数求值”麻烦指点一下,谢谢! 是的List<int> list = new List<int>();list.Add(1);list.Add(2);list.Add(3);list.Add(4);list.Add(5);Thread thread = new Thread(new ParameterizedThreadStart(Proc));thread.Start(list); 您好,我是做的二次开发//m_txqFeatureClass是一个组件接口的实例化对象,是最终需传递的参数在未启动线程之前,可以查看m_txqFeatureClass各个字段值,线程启动后,ExcuteCalculate函数中跟踪实参字段值时显示“由于以前的函数求值超时,函数求值被禁用。必须继续执行才能重新启用函数求值”代码如下,请帮忙诊断一下,非常感谢!//启用线程List<IFeatureClass > txqList = new List<IFeatureClass>();txqList.Add(m_txqFeatureClass);Thread newThread = new Thread(new ParameterizedThreadStart(ExcuteCalculate));newThread.Start(txqList);//ExcuteCalculate函数private void ExcuteCalculate(object txq){ List<IFeatureClass> txqList = (List<IFeatureClass>)txq; IFeatureClass txqFeatureClass = txqList[0]; ……} 您好,感谢您的回复,我是做的二次开发//m_txqFeatureClass是一个组件接口的实例化对象,是最终需传递的参数在未启动线程之前,可以查看m_txqFeatureClass各个字段值,线程启动后,ExcuteCalculate函数中跟踪实参字段值时显示“由于以前的函数求值超时,函数求值被禁用。必须继续执行才能重新启用函数求值”代码如下,请帮忙诊断一下,非常感谢!//启用线程List<IFeatureClass > txqList = new List<IFeatureClass>();txqList.Add(m_txqFeatureClass);Thread newThread = new Thread(new ParameterizedThreadStart(ExcuteCalculate));newThread.Start(txqList);//ExcuteCalculate函数private void ExcuteCalculate(object txq){ List<IFeatureClass> txqList = (List<IFeatureClass>)txq; IFeatureClass txqFeatureClass = txqList[0]; ……} //是这个意思吗?void start(){ ThreadStart starter = delegate { dtChanger(dataset1); };//线程带参数 new Thread(starter).Start();}void dtChanger(DataSet dataset1){ //事件} C#画图双缓存解决闪烁的问题 快过年了 散散分 请教编写一个编码规则程序 多先程问题 求一条SQL语句 调用API问题。 请问怎样在.net中设置运行的启始页。 判断浮点型的正则表达式如何写? 类型或命名空间名称“SqlConnection 在类或命名空间,System中不存在(是否缺少程序集引用?) API变量怎样转为C#的变量? 想知道inData往里传什么样子的值?MarshalAs(UnmanagedType.BStr) Visual Studio能否生成带窗体的dll
{
List<int> list = (List<int>)obj;
}// 线程调用List<int> list = new List<int>();Thread thread = new Thread(new ParameterizedThreadStart(Proc));
thread.Start(list);
您好,感谢回复!
// 线程调用
List<int> list = new List<int>();
后面是不是通过Add方法将要传递的类实例添加到list 中然后再传递thread.Start(list)?
按照上面的方法,进行尝试,跟踪变量出现如下问题麻烦指点一下,谢谢!
// 线程调用
List<int> list = new List<int>();
后面是不是通过Add方法将要传递的类实例添加到list 中然后再传递thread.Start(list)?
按照上面的方法,进行尝试,跟踪实例对象的相关字段时出现如下提示信息
“由于以前的函数求值超时,函数求值被禁用。必须继续执行才能重新启用函数求值”
麻烦指点一下,谢谢!
List<int> list = new List<int>();
list.Add(1);
list.Add(2);
list.Add(3);
list.Add(4);
list.Add(5);Thread thread = new Thread(new ParameterizedThreadStart(Proc));
thread.Start(list);
您好,我是做的二次开发
//m_txqFeatureClass是一个组件接口的实例化对象,是最终需传递的参数
在未启动线程之前,可以查看m_txqFeatureClass各个字段值,
线程启动后,ExcuteCalculate函数中跟踪实参字段值时显示“由于以前的函数求值超时,函数求值被禁用。必须继续执行才能重新启用函数求值”
代码如下,请帮忙诊断一下,非常感谢!//启用线程
List<IFeatureClass > txqList = new List<IFeatureClass>();
txqList.Add(m_txqFeatureClass);
Thread newThread = new Thread(new ParameterizedThreadStart(ExcuteCalculate));
newThread.Start(txqList);//ExcuteCalculate函数
private void ExcuteCalculate(object txq)
{
List<IFeatureClass> txqList = (List<IFeatureClass>)txq;
IFeatureClass txqFeatureClass = txqList[0]; ……}
//m_txqFeatureClass是一个组件接口的实例化对象,是最终需传递的参数
在未启动线程之前,可以查看m_txqFeatureClass各个字段值,
线程启动后,ExcuteCalculate函数中跟踪实参字段值时显示“由于以前的函数求值超时,函数求值被禁用。必须继续执行才能重新启用函数求值”
代码如下,请帮忙诊断一下,非常感谢!//启用线程
List<IFeatureClass > txqList = new List<IFeatureClass>();
txqList.Add(m_txqFeatureClass);
Thread newThread = new Thread(new ParameterizedThreadStart(ExcuteCalculate));
newThread.Start(txqList);//ExcuteCalculate函数
private void ExcuteCalculate(object txq)
{
List<IFeatureClass> txqList = (List<IFeatureClass>)txq;
IFeatureClass txqFeatureClass = txqList[0]; ……}
//是这个意思吗?
void start()
{
ThreadStart starter = delegate { dtChanger(dataset1); };//线程带参数
new Thread(starter).Start();
}void dtChanger(DataSet dataset1)
{
//事件
}