江湖救急,“多线程”问题,Why???
Master,存在“12个错误”和“3个警告”啊。
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace MoreThread
{
public class ETLProcess
{
public List<Thread> theadlists;//线程列表
public ETLProcess()
{
}
public bool CreateThead(string ThreadID, string ETLTableName)
{
bool flag=false;
try
{
Thread th = new Thread(new ParameterizedThreadStart(Do));
问题一:
错误 11
“Do”的重载均与委托“System.Threading.ParameterizedThreadStart”不匹配
E:\Test\MoreThread\MoreThread\ETLProcess.cs
22 39
MoreThread
提示不匹配,这是怎么回事啊? 应该如何修改?
th.IsBackground = true;
th.Name = ThreadID;
th.Start(ETLTableName);
th.Sleep(10000);
问题二:
错误 12
无法使用实例引用来访问成员“System.Threading.Thread.Sleep(int)”;请改用类型名来限定它
E:\Test\MoreThread\MoreThread\ETLProcess.cs
26 16
MoreThread
这是怎么回事,应该怎样修改?
theadlists.Add(th);
flag = true;
}
catch (Exception ex)
{
flag = false;
}
return flag;
}
问题三:如何获取返回“Do”方法的参数呢???
public string Do(string str)
{
return str;
}
public bool SuspendThead(int index)
{
bool flag = false;
try
{
theadlists[index].Suspend();
问题四:
警告 3
“System.Threading.Thread.Suspend()”已过时:“"Thread.Suspend has been deprecated. Please use other classes in System.Threading, such as Monitor, Mutex, Event, and Semaphore, to synchronize Threads or protect resources. http://go.microsoft.com/fwlink/?linkid=14202"”
E:\Test\MoreThread\MoreThread\ETLProcess.cs 49 15 MoreThread
提示“已过时”,怎么回事??? 换用什么方法不过时呢???
flag = true;
}
catch (Exception ex)
{
flag = false;
}
return flag;
}
public bool SuspendAbort(int index)
{
bool flag = false;
try
{
theadlists[index].Abort();
flag = true;
}
catch (Exception ex)
{
flag = false;
}
return flag;
}
}
} --------------------编程问答-------------------- "Do()"方法根据线程执行一遍,最后返回了一个参数这个参数应该如何获取,对吧??? --------------------编程问答-------------------- 1.
public string Do(object o)
{
string str = (string)o;
....
}
2.
Thread.Sleep(10000);
3.添加委托回调,建立线程有几种方法,其中有添加返回结果委托;
给个例子,自己看
public delegate string FuncHandle(int data1, int data2);
FuncHandle fh ;
private void BT_Temp_Click(object sender, RoutedEventArgs e)
{
fh = new FuncHandle(this.Foo);
AsyncCallback callback = new AsyncCallback(this.AsyncCallbackImpl);
fh.BeginInvoke(1, 3, callback, null);
}
public void AsyncCallbackImpl(IAsyncResult ar)
{
string re = fh.EndInvoke(ar);
MessageBox.Show(" " + ar.AsyncState);
}
string Foo(int data1, int data2)
{
return " " + data1 + data2;
}
4.过期问题不大,一定要搞定,就按照提示搞呗 --------------------编程问答-------------------- 我的天,最基本的语法都不会。
(1)
ParameterizedThreadStart的原型是
public delegate void ParameterizedThreadStart (
Object obj
)
你怎么给它传一个string Method(string)的方法。
(2)
静态方法用类名.方法名调用,用过Console.WriteLine()么???第一天学编程就应该知道的。
就这样还是学习下语法吧。 --------------------编程问答-------------------- --------------------编程问答--------------------
Master,"委托回调"有这样的实例吗??? --------------------编程问答--------------------
木有~ 我也是新手,多看点基础的书吧,这样有些不懂的函数还能查MSDN。那就简单多了~真的~ --------------------编程问答-------------------- 线程不会在“宿主Winform”退出时,自动销毁吗???
必须在“Form1_FormClosed”时手动销毁吗???
怎样查看操作系统中跑动的“线程”呢??? 任务管理器中只能查看“进程”啊。 --------------------编程问答-------------------- Master,也就是说一个“Access”数据库对应多个“连接和Session”的时候,即使它们之间没有表和记录之间的竞争。也只能按照先后顺序进行处理,并不能并发对吧??? --------------------编程问答-------------------- 委托的参数类型跟方法的参数类型不匹配 --------------------编程问答-------------------- 比较关心一个问题,“Access”到底支不支持“并发链接”??? --------------------编程问答-------------------- “Access”不是理论支持“255个并发连接”的吗??? 还是“Access”并不是真的并发,而是这“255个并发连接”还是串行处理的,并没有并发??? --------------------编程问答-------------------- 添加委托回调,建立线程有几种方法,其中有添加返回结果委托;
给个例子,自己看
public delegate string FuncHandle(int data1, int data2);//定义委托
FuncHandle fh ;//定义委托变量
private void BT_Temp_Click(object sender, RoutedEventArgs e)
{
fh = new FuncHandle(this.Foo); //为委托变量“事件”赋值
AsyncCallback callback = new AsyncCallback(this.AsyncCallbackImpl);
问题一:“AsyncCallback”它的作用是什么呢???
问题二:“BeginInvoke”它的作用是什么呢???
fh.BeginInvoke(1, 3, callback, null);
}
public void AsyncCallbackImpl(IAsyncResult ar)
{
string re = fh.EndInvoke(ar);
MessageBox.Show(" " + ar.AsyncState);
}
string Foo(int data1, int data2) //委托变量对应的方法
{
return " " + data1 + data2;
} --------------------编程问答-------------------- 关于此“委托回调”的用法。
补充:.NET技术 , C#