Не работает метод потока на C# Помогите пожалуйста!!! В приведенном потоке метод void ReadDevice_Thread(object handle) отрабатывает всего один раз, а должен работать постоянно. У кого какие соображения по этому поводу? namespace TestUSBDrv ** class ThreadClass ** [DllImport("kernel32.dll", SetLastError = true)] static extern bool ReadFile(IntPtr hFile, [Out] byte[] lpBuffer, uint nNumberOfBytesToRead, out uint lpNumberOfBytesRead, IntPtr lpOverlapped); public void Create_Start_Thread(object handle1) ** Thread thread = new Thread(ReadDevice_Thread); thread.Name = "ReadThread"; thread.Priority = ThreadPriority.Normal; thread.Start(handle1);//передача параметра в поток ** void ReadDevice_Thread(object handle)//Метод потока, передаем параметр ** uint BytesRead = 0; uint InputReportByteLength; InputReportByteLength = 8; byte[] BufBytes = new byte[InputReportByteLength]; if (ReadFile((IntPtr)handle, BufBytes, InputReportByteLength, out BytesRead, IntPtr.Zero)) ** byte[] OutBytes = new byte[BytesRead]; Array.Copy(BufBytes, OutBytes, BytesRead); ** ** ** ** |
while(...)****, do{**while(...) |
функцию для чтения нужно зациклить, с проверкой того что поток решили завершить, ну так обычно делается в Delphi если функцию не зацикливать то она и выполнится всего 1 раз и все. В C# думаю должно быть нечто подобное. ps Вроде же в C# есть стандартный компонент для работы с COM портом, так нафига городить огород или он как то не стабильно работает? |
Спасибо за помощь.Тема закрыта. |
Пора уже=) |
Текущее время: 06:36. Часовой пояс GMT +3. |