0
- 28.01.2012 - 12:42
|
Помогите пожалуйста!!! В приведенном потоке метод 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); ** ** ** ** | |
1
- 28.01.2012 - 12:59
| while(...)****, do{**while(...) | |
2
- 28.01.2012 - 13:21
|
функцию для чтения нужно зациклить, с проверкой того что поток решили завершить, ну так обычно делается в Delphi если функцию не зацикливать то она и выполнится всего 1 раз и все. В C# думаю должно быть нечто подобное. ps Вроде же в C# есть стандартный компонент для работы с COM портом, так нафига городить огород или он как то не стабильно работает? | |
3
- 28.01.2012 - 17:25
| Спасибо за помощь.Тема закрыта. | |
4
- 04.03.2015 - 07:49
| Пора уже=) | |
| Интернет-форум Краснодарского края и Краснодара |