1.线程封装到类里去,每次实例化一个,类里开线程,线程把返回值写入public类型的变量里,这样A就能获取到了
2.给线程注册回调函数(用委托)
3.不要用局部变量str,而是弄个全局数组,线程把结果直接写到全局数组里,这样你在工程的每个文件里都能获取它的值了
2.给线程注册回调函数(用委托)
3.不要用局部变量str,而是弄个全局数组,线程把结果直接写到全局数组里,这样你在工程的每个文件里都能获取它的值了
解决方案 »
- 200分,求C# 通过TCP IP传送数据程序!!急急急。。
- 为什么ConfigurationManager.AppSettings.Get(key) 得到的值总是一样
- 打印问题重重
- 如何判断对象/属性是否初始化?
- c#控制台程序不支持事件的吗?我是指event和委托
- 新手问一个问题
- 关于DefWndProc消息机制的重载和socket传输数据的问题
- 终于升五个裤衩了,散分!中秋快乐顺便送点好东东^_^
- DataTime类型转换为int类型的问题... 恳请求教
- 使用C#能作出不规则的WIN FORM和更换不规则的SKIN吗?请提供范例,谢谢
- 多线程并发全局变量错乱问题。
- HtmlInput按钮怎么添加onserverclick事件?
{
//
}
如何将结果返给 类A中,线程还要继续,最好给点代码说明
{
static void Main(string[] args)
{
MainThreadClass mt = new MainThreadClass();
mt.Start();
}
} public class MainThreadClass
{
string[] arrStr = new string[] { "Microsoft", "IBM", "Oracle" }; public void Start()
{
foreach (string str in arrStr)
{
SubTreadClass st = new SubTreadClass();
st.Completed += new EventHandler(st_Completed);
ThreadStart ts = new ThreadStart(st.Method);
Thread th = new Thread(ts);
th.Name = str;
th.Start();
}
} void st_Completed(object sender, EventArgs e)
{
Console.WriteLine("Thread completed.");
}
} public class SubTreadClass
{ private event EventHandler m_eventCompleted = null; public event EventHandler Completed
{
add { m_eventCompleted += value; }
remove { m_eventCompleted -= value; }
} public void Method()
{
Console.WriteLine(string.Format("Current thread:{0}:{1}", Thread.CurrentThread.Name,
"MyClass.Method() executed."));
if (m_eventCompleted != null)
{
m_eventCompleted(this, EventArgs.Empty);
}
}
}
2.在类A里放个全局public数组,类B里线程直接写入数组