Форум на Kuban.ru (http://forums.kuban.ru/)
-   Разработка программ (http://forums.kuban.ru/f1024/)
-   -   Не работает метод потока на C# (http://forums.kuban.ru/f1024/ne_rabotaet_metod_potoka_na_c-2125816.html)

coder73 28.01.2012 12:42

Не работает метод потока на 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);
**

**
**
**

koni 28.01.2012 12:59

while(...)****, do{**while(...)

TVV1 28.01.2012 13:21

функцию для чтения нужно зациклить, с проверкой того что поток решили завершить, ну так обычно делается в Delphi если функцию не зацикливать то она и выполнится всего 1 раз и все. В C# думаю должно быть нечто подобное.
ps Вроде же в C# есть стандартный компонент для работы с COM портом, так нафига городить огород или он как то не стабильно работает?

coder73 28.01.2012 17:25

Спасибо за помощь.Тема закрыта.

harvie234 04.03.2015 07:49

Пора уже=)


Текущее время: 06:36. Часовой пояс GMT +3.