C#线程事件的入门

原创 2004年07月26日 09:24:00

最近在开发一个即时消息系统,由于时间比较忙,加上还有4,5门的考试,没有时间写点感受,现在准备慢慢抽点时间写,要不然我的登峰之道要成凉亭了:),言归正传,客户端需要转文件给服务器,实质是传给另一个客户端,不过可能目标客户不在,所以通过服务器中转,当然留言的功能也是如此实现的。传输文件不止是一个,可能包含N个目录和N个文件,通常要把传输的文件目录列表放到一个循环里,依次向TCP流写入,当然包括文件的大小和文件名,在这种情况下如果上个文件还没有传输完毕,For循环里的一下文件是不能写入TCP流的,如何解决这个问题? 我的思路是在for循环里放入AutoResetEvent,产生一个等待事件,直到上个文件传输完毕后,把AutoResetEvent设成非激活,以使for继续执行传输下一个文件,这里我没有给你TCP的示例,而且是给出这个问题的模型。请看下面的示例代码

using System;
using System.Threading;

namespace AutoResetEvent_Examples
{
 class MyMainClass
 {
  
  const int numIterations = 10;
  static AutoResetEvent myResetEvent = new AutoResetEvent(false);

  static int number;
     
  static void Main()
  {
   
   Thread myReaderThread = new Thread(new ThreadStart(MyReadThreadProc));
   myReaderThread.Name = "ReaderThread";
   myReaderThread.Start();
 
  }

  static void MyReadThreadProc()
  {
   
   for(int i=0;i<numIterations;i++)
   { 
    Console.WriteLine("Writer thread writing value: {0}", i);
    number = i;
    ProFile();
    myResetEvent.WaitOne();
   }
  }


  static void ProFile()
  {
   Console.WriteLine("static process  sendfile:"+number);
   Console.WriteLine("process end!");
   myResetEvent.Set();
  }

 }
}

 

c++ 多线程 事件EVENT

事件是内核对象。
  • qq981932962
  • qq981932962
  • 2014年09月29日 17:27
  • 2795

UWP入门(一) -- 先写几个简单控件简单熟悉下(别看这个)

1. MainPage.xmal
  • u011033906
  • u011033906
  • 2017年03月20日 15:23
  • 1497

C#图解教程经典的C#入门书

《C#图解教程》是一本经典的C#入门书,不仅适合没有任何编程语言基础的初级读者,而且还是有VB、C++等语言基础的C#初学者的最佳选择。 用图说话,最易学的C#教程,Amazon全五星盛誉,涵盖...
  • u013736471
  • u013736471
  • 2014年03月13日 17:42
  • 1118

C# VS2013 串口接收事件 通过委托跨线程操作TXTBOX

  • 2017年07月24日 11:47
  • 84KB
  • 下载

C# 线程中使用Timer,并向其触发的事件(函数)中传递参数

C#中的三个Timer我就不作说明了,这里要说的是如果你在线程中使用Timer,是不能使用System.Windows.Forms.Timer的,微软的注释很明确:“实现按用户定义的时间间隔引发事件的...
  • xiezhijie
  • xiezhijie
  • 2011年06月22日 18:32
  • 4712

C#——基于委托与事件的多线程通信(同样适用于非UI线程间通信)

在研究c# 线程之间通信时,发现传统的方法大概有三种 ①全局变量,由于同一进程下的多个进程之间共享数据空间,所以使用全局变量是最简单的方法,但要记住使用volatile进行限制。 ...
  • u011026885
  • u011026885
  • 2016年10月19日 20:58
  • 844

C#线程参考手册(初学者最佳入门书籍)

  • 2011年01月10日 09:40
  • 13.9MB
  • 下载

4.[个人]C++线程入门到进阶(4)----线程同步之事件Event

1、首先介绍下如何使用事件。     事件Event实际上是个内核对象,它的使用非常方便。下面列出一些常用的函数。 1)第一个 CreateEvent 函数功能:创建事件 函数...
  • shuimanting520
  • shuimanting520
  • 2017年04月25日 23:20
  • 179

17.[个人]C++线程入门到进阶(17)----关键段,事件,互斥量,信号量的“遗留”问题

在《秒杀多线程第九篇 经典线程同步总结 关键段 事件 互斥量 信号量》中对经典多线程同步互斥问题进行了回顾和总结,这篇文章对Windows系统下常用的线程同步互斥机制——关键段、事件、互斥量、信号...
  • shuimanting520
  • shuimanting520
  • 2017年04月25日 23:48
  • 170

C#中的线程(一)入门

  • 2012年12月09日 21:35
  • 124KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#线程事件的入门
举报原因:
原因补充:

(最多只允许输入30个字)