线程lock(急急急)
public static void ReadCallback(IAsyncResult objIAsyncResult)
{
StateObject objStateObject = (StateObject)objIAsyncResult.AsyncState;
Socket objSocketHandler = objStateObject.objSocketWork;
int intBytesRead = objSocketHandler.EndReceive(objIAsyncResult);
if(intBytesRead > 0)
{
byte[] btReceive = new byte[intBytesRead];
for(int i=0;i<intBytesRead;i++)
{
btReceive[i] = objStateObject.btBuffer[i];
}
System.Text.Encoding objEncoding = System.Text.Encoding.GetEncoding("GB2312");
string strTemp = objEncoding.GetString(btReceive);
/// 这里需要将收到的strTemp数据送到另外一个函数去处理
clsOther.DealData(strTemp);
objSocketHandler.BeginReceive(objStateObject.btBuffer,0,StateObject.intBufferSize,0,new AsyncCallback(ReadCallback),objStateObject);
}
同时为了在线程中同步,建立了一个公共类Parameter,变量为public static intCounter
为了防止多个线程同时操作intCounter出现错误,所以使用LOCK语句;
但是clsOther.DealData(strTemp)需要先对数据进行检验,然后对合法数据处理,并修改Parameter.intCounter,请问LOCK语句应该写在哪里,才能实现多个线程同时操作intCounter出现错误??????????????????????