问题1:Error1Invalid token '+=' in class, struct, or interface member declarationE:/vs2008/ToolsManagement4.30/ToolsManagement4.30/Program.cs2428ToolsManagement4.30
Timer1.Elapsed += new ElapsedEventHandler(Timer1_ElapsedEventHandler);
不能直接写在类,结构体中,因为类中只能域变量,方法。不能将单独的这样一个语句写到类中
这个语句可以写在一个方法里边。。
问题2:静态类中只能引用静态成员,如果引用非静态成员就会出现错误:
Error1A field initializer cannot reference the non-static field, method, or property 'ToolsManagement.Program.pipeServer1'E:/vs2008/ToolsManagement4.30/ToolsManagement4.30/Program.cs2051ToolsManagement4.30
问题3:
一下代码一开始会报错。 费了一下午,最后在网友的帮助下,终于将这个错误找出来了
///因为类中的Timer在每次新建一个类的时候都会建立,如果不释放的话,就会出现多个timer,从而
///出现同步问题!!!!!
触发事件激发时,要先关掉管道,但是不要忘记关掉定时器timer啊,否则多个timer会出现同步问题!!!timer在线程池上运行的@@@
using System;
using System.IO;
using System.IO.Pipes;
using System.Linq;
using System.Text;
using System.Threading;
using System.Collections.Generic;
using System.Security.Principal;
using System.Timers;
using System.Diagnostics;
namespace testtools
{
class Test
{
System.Timers.Timer Timer1 = new System.Timers.Timer(5000);
NamedPipeServerStream pipeServer =
new NamedPipeServerStream("testpipe", PipeDirection.InOut);
public void run()
{
Console.WriteLine("建立一个管道并启动定时器");
Timer1.Elapsed += new ElapsedEventHandler(Timer1_ElapsedEventHandler);
Timer1.Start();
}
private void Timer1_ElapsedEventHandler(object sender,
ElapsedEventArgs e)
{
Console.WriteLine("timer1TimeOut");
pipeServer.Close();
Test test1 = new Test();
test1.run();
费了一下午,最后在网友的帮助下,终于将这个错误找出来了
///因为类中的Timer在每次新建一个类的时候都会建立,如果不释放的话,就会出现多个timer,从而
///出现同步问题!!!!!
Timer1.Close();
}//private static void Timer1_ElapsedEventHandler(object sender,ElapsedEventArgs e)
}
class Program
{
static void Main(string[] args)
{
Test test1 = new Test();
test1.run();
Console.ReadLine();
}
}
}