我需要多线程,专门用于数据插入,
不知道怎么构架,请大家帮忙
我是这样写的,但是用的是单线程
public data
{
private DataTable dt;
public AppendToDb(BusMessage Msg)
{
DataMutex.WaitOne();
System.Data.DataRow dRow = dt.NewRow();
try
{
dRow["ID"] = 1;
dRow["Track_Time"] = '2006-09-11 17:50:44'
dt.Rows.Add(dRow);
if(i>1000)
{
dataAdapter.Update(DS, "Trace");
}
}
finally
{
DataMutex.ReleaseMutex();
} }
}
请大家帮忙。
不知道怎么构架,请大家帮忙
我是这样写的,但是用的是单线程
public data
{
private DataTable dt;
public AppendToDb(BusMessage Msg)
{
DataMutex.WaitOne();
System.Data.DataRow dRow = dt.NewRow();
try
{
dRow["ID"] = 1;
dRow["Track_Time"] = '2006-09-11 17:50:44'
dt.Rows.Add(dRow);
if(i>1000)
{
dataAdapter.Update(DS, "Trace");
}
}
finally
{
DataMutex.ReleaseMutex();
} }
}
请大家帮忙。
把这个data直接放到一个线程里面运行不就可以了吗
public class dueMsg
{
data _data = new data()
_data.AppendToDb(Msg);
}
我在duemsg类里面怎么开一个线程处理数据?
{
private data _data;
public dueMsg(data _data)
{
this._data = _data;
}
private void append()
{
_data.AppendToDb(Msg);
}
public void appenddata()
{
Thread th=new Thread(ThreadStart(appenddata));
th.Start();
}
}
大概就这样吧-,-
这样就可以控制th了
public class RecevMsg
{ _dataToDb = new DataToDB(); private receive(Message Msg) //接收到数据
{
dataToDb.AppendMessage(Msg)
}
}public DataToDB
{
public void AppendMessage(Message msg)
{
DataMutex.WaitOne();
DataRow row = getNewRow();
SetRow(row, msg);
AddRow(row);
DataMutex.ReleaseMutex();
}
private void AddRow(DataRow row)
{
tableOne.Rows.Add(row);
iInsert++;
if (iInsert >= MaxRows)
{
iInsert = 0;
WriteDataToDB();
}
}
private void WriteDataToDB()
{
Thread _threadInsert;
try
{
_threadInsert = new Thread(new System.Threading.ThreadStart (UpdateToDb));
_threadInsert.Start();
}
} private void UpdateToDb()
{
dataAdapter.Update(tableOne);
tableOne.Clear();
}
}请大家看看对不对,