I want to convert my console application to windows form application.in console form the data is continously coming now i want to display that console output to my richboxtext present in windows form application.assume there is a button,richboxtext in my windows form.please use threads and please look my code below.
using System; using canlibCLSNET; namespace CanData02 { public class Program { static void Main(string[] args) { int handle; Canlib.canStatus status; int channelNumber = 0; Canlib.canInitializeLibrary(); handle = Canlib.canOpenChannel(channelNumber, Canlib.canOPEN_ACCEPT_VIRTUAL); CheckStatus((Canlib.canStatus)handle, "canOpenChannel"); status = Canlib.canSetBusParams(handle, Canlib.canBITRATE_250K, 0, 0, 0, 0, 0); CheckStatus(status, "canSetBusParams"); status = Canlib.canBusOn(handle); CheckStatus(status, "canBusOn"); DumpMessageLoop(handle); } private static void DumpMessageLoop(int handle) { Canlib.canStatus status; bool finished = false; byte[] data = new byte[8]; int id; int dlc; int flags; long timestamp; Console.WriteLine("Channel opened. Press Escape to close. "); Console.WriteLine("ID DLC DATA Timestamp"); while (!finished) { status = Canlib.canReadWait(handle, out id, data, out dlc, out flags, out timestamp, 100); if (status == Canlib.canStatus.canOK) { DumpMessage(id, data, dlc, flags, timestamp); } else if (status != Canlib.canStatus.canERR_NOMSG) { CheckStatus(status, "canReadWait"); finished = true; } } } private static void DumpMessage(int id, byte[] data, int dlc, int flags, long timestamp) { if ((flags & Canlib.canMSG_ERROR_FRAME) != 0) { Console.WriteLine("Error Frame received ****"); } else { Console.WriteLine($"{id} {dlc} {data[0]:x2} {data[1]:x2} {data[2]:x2} {data[3]:x2} {data[4]:x2} {data[5]:x2} {data[6]:x2} {data[7]:x2} {timestamp}"); } } private static void CheckStatus(Canlib.canStatus status, string method) { if (status < 0) { Console.WriteLine($"{method} failed: {status.ToString()}"); } } } }