如何为Timer连接客户端参数提供Timer Tick功能? 当然,这里没有定义客户端。
public static void DisplayTimeEvent(object source, ElapsedEventArgs e)
{
string content = "Hello World!";
System.IO.StreamWriter writer = new System.IO.StreamWriter(client.GetStream());
}
在我的主要虚空中
static void Main(string[] args)
{
TcpListener server = new TcpListener(System.Net.IPAddress.Loopback, 8001);
server.Start();
Console.WriteLine("Wait for clients");
TcpClient client = server.AcceptTcpClient();
System.IO.StreamWriter writer = new System.IO.StreamWriter(client.GetStream());
System.Timers.Timer myTimer = new System.Timers.Timer();
myTimer.Elapsed += new ElapsedEventHandler(DisplayTimeEvent);
myTimer.Interval = 1000;
myTimer.Start();
}
答案 0 :(得分:1)
您可以简单地将客户端引用设为全局。
static TcpClient client = null;
在你的主要方法中:
client = server.AcceptTcpClient();
由于您的计时器仅在客户端引用设置(AcceptTcpClient方法阻塞)后才开始计时,因此您可以在计时器方法中保护NullReferenceExceptions。