编程中出现的问题和相应的解决办法。

问题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();

}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值