异步 进程 读取文件内容
2012-03-08 15:47
204 查看
class Class1 { public delegate int AsyncEventHandler(int a); static List<string> l = new List<string>(); static int ps = 1000; static long end = 0; static long start = 0; void Event1() { Console.WriteLine("Event1 Start"); System.Threading.Thread.Sleep(2000); Console.WriteLine("Event1 End"); } int Event2(int pi) { Console.WriteLine("Event2 Start 第" + pi + "次"); for (int i = 0; i < ps; i++) { Console.WriteLine(l[(pi - 1) * ps + i]); } Console.WriteLine("Event2 End 第" + pi + "次"); return pi; } void CallbackMethod(IAsyncResult ar) { var del = (AsyncEventHandler)ar.AsyncState; var a = del.EndInvoke(ar); Console.WriteLine(" 第" + a + "次 回调------------------耗时:" + (end - start).ToString() + "-------------------------"); //((AsyncEventHandler)ar.AsyncState).EndInvoke(ar); } [STAThread] static void Main(string[] args) { Class1 c = new Class1(); Console.WriteLine("ready"); start = DateTime.Now.Ticks; //AsyncEventHandler asy = new AsyncEventHandler(c.Event1); //IAsyncResult ia = asy.BeginInvoke(new AsyncCallback(c.CallbackMethod), asy); //c.Event2(); //asy.EndInvoke(ia); using (StreamReader sr = new StreamReader(@"R:\123.txt", Encoding.Default)) { AsyncEventHandler asy = new AsyncEventHandler(c.Event2); var line = sr.ReadLine(); while (line != null) { l.Add(line); if (l.Count % ps == 0 && l.Count > 0) { IAsyncResult ia = asy.BeginInvoke(l.Count / ps, new AsyncCallback(c.CallbackMethod), asy); } //Console.WriteLine(line);//=144218750 //Task<int>.Factory.FromAsync(asy.BeginInvoke, asy.EndInvoke, (l.Count / ps), null).ContinueWith(o => Console.WriteLine(string.Format("结果:{0}", o.Result))); line = sr.ReadLine(); } } //WaitHandle.WaitAll(); end = DateTime.Now.Ticks; Console.WriteLine("时间刻度差=" + Convert.ToString(end - start)); Console.ReadLine(); } }
相关文章推荐
- 关于AysncController的一次测试(url重写后静态页文件内容的读取是否需要使用异步?)
- 异步读取raw文件下大文件的内容
- VC读取文件内容
- java读取pdf文件内容
- io读取文件内容乱码处理
- C语言中把结构内容写入二进制文件及从二进制文件中读取出数据
- file操作(7)--------------- BufferedReader读取文件内容
- java 读取配置文件内容
- java 读取本地excel 文件,将excel内容转换成java对象
- nodejs异步读取文件与同步读取文件的区别
- 【python】读取文件&停止启动进程
- 读取Config.ini文件内容
- Matlab 读取父文件下子文件夹内容
- mapreduce读取文件内容输出到hbase
- 使用ifstream和getline读取文件内容[c++]
- PHP读取csv文件的内容
- NET(C#)中将DATATABLE内容写入到CSV文件 与 将CSV文件内容读取到DATATABLE中
- 使用FileReader和FileWriter读取写入文件内容
- 读取xml文件内容到数据库
- 读取EXECL文件内容,可以支持分布