看书上写的晕乎晕乎的
大侠抛几个简单的例子
大侠抛几个简单的例子
解决方案 »
- AxInterop.TeeChart.dll和Interop.TeeChart.dll注册的问题
- C# 关于对txt操作求解
- 异常捕获问题?
- 很郁闷,该如何提高自己,请高手指点
- 如何查看和编辑.dll文件?
- win7下设置iis网站绑定,填写ip地址按确定后iis闪退,绑定不了ip(在线求解决)
- 如何用C#发送一个自己定义的TCP/IP包,注:包里的内容由自己定义
- 请问现在做一个windows系统下的一个界面软件,用什么开发语言和工具好?
- 关于C#
- 怎样能够把在一个form类中定义的变量,在另一个form类中使用呢?
- 如何修改DataGridView中某一列列头的颜色
- throw new NotImplementedException()是什么意思呢
// doSth
}).Start();
{
Thread thread_dotcp = new Thread(new ThreadStart(AsynAccept));
thread_dotcp.IsBackground = true;
thread_dotcp.Start();
}
private void AsynAccept()
{
int receivecount = 0;
try
{
do
{ if (null != mtcp && null != mtcp.Client && mtcp.Client.Connected)
{
NetworkStream ns = mtcp.GetStream();
byte[] receiveBytes = new byte[15];
EndPoint remoteEP = (remoteIP);
receivecount = mtcp.Client.ReceiveFrom(receiveBytes, 15, 0, ref remoteEP);
if (receivecount < 1)
{
System.Diagnostics.Debug.Print("连接退出!");
break;
}
StructModel.tcpSendTo tcpsendto = new StructModel.tcpSendTo();
tcpsendto.point = (IPEndPoint)mtcp.Client.RemoteEndPoint;
tcpsendto.oreceiveBytes = receiveBytes;
tcpsendto.tcpClient = mtcp;
base._ReBackClient = mtcp;
if (receivecount == 15 && receiveBytes[14] == 0)
System.Diagnostics.Debug.Print("收到数据包!");
else
if (receivecount == 15 && receiveBytes[14] == 1)
System.Diagnostics.Debug.Print("收到心跳包!");
else
System.Diagnostics.Debug.Print("收到测试包!");
DoWork(tcpsendto);
//_CRTUClient.LstReceiveData.Add(new StructModel.MemoryData(tcpsendto, receiveBytes));//receiveBytes
Thread.Sleep(100);
} }
while (true);
}
catch
{ }
finally
{
// Thread.CurrentThread.Abort();
}
}
不可能一个老师自己做。这就是线程的概念。以下未编译过:public List<string> papers = new List<string>();// 找个地方初始化1000个string,代替试卷。
Class Teacher
{
public void StartWork()
{
ThreadPool.QueueUserWorkItem(new WaitCallback(DoCheck),null);
}
public void DoCheck(Object obj)
{
while(GetPaper() != "")
{
Console.WriteLine("do...");
Thread.Sleep(10000);
}
}
public Object obj = new Object();
public string GetPaper()
{
lock(obj)
{
if(this.papers.Count>0)
{
string ret = this.papers[0];
this.papers.RemoveAt(0);
return ret;
}
}
}
当你new了多个teacher后,
public void Click()
{
Teacher t = new Teacher();
t.StartWork();
}