using System; using System.Threading; class Example { static void Main() { Console.WriteLine("Starting..."); TimerCallback callback = new TimerCallback(RunTask); Timer timer = new Timer(callback, null, 0, 1000); Console.ReadLine(); } static void RunTask(object state) { Console.WriteLine("Running task..."); } }
using System; using System.Net; using System.Net.Sockets; using System.Text; class Example { static void Main() { Console.WriteLine("Starting..."); Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket.Connect("example.com", 80); byte[] buffer = new byte[1024]; socket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), socket); Console.ReadLine(); } static void ReceiveCallback(IAsyncResult result) { Socket socket = (Socket)result.AsyncState; int bytesRead = socket.EndReceive(result); byte[] buffer = (byte[])result.AsyncState; string data = Encoding.ASCII.GetString(buffer, 0, bytesRead); Console.WriteLine(data); } }Both examples use a callback function to perform some action after a specific event. The first example uses the System.Threading library and the second example uses the System.Net.Sockets library.