Как правильно использовать.NET2.0 последовательный порт.BaseStream для асинхронной операции

Маскирование и получение ненулевых значений и общего индекса:

df_wt.set_index('Name', inplace=True)
df_sc.set_index('Name', inplace=True)

mask = df_wt['Weight'].ne(0)
common_index = df_wt.loc[mask, :].index
df_wt.loc[common_index, 'Weight'].corr(df_sc.loc[common_index, 'Score'])

0.923425144491911

Если оба кадра данных содержат нули, то:

mask1 = df_wt['Weight'].ne(0)
mask2 = df_sc['Score'].ne(0)
common_index = df_wt.loc[mask1, :].index.intersection(df_sc.loc[mask2, :].index)
df_wt.loc[common_index, 'Weight'].corr(df_sc.loc[common_index, 'Score'])
15
задан Andy 30 May 2011 в 19:54
поделиться

3 ответа

Никакая потребность вообще в BeginWrite. Вы только отправляете 3 байта, они легко поместятся в буфер передачи, и Вы всегда уверены, что буфер пуст при отправке следующего набора.

Следует иметь в виду, что последовательные порты намного медленнее, чем соединения TCP/IP. Довольно вероятно, что Вы заканчиваете тем, что назвали BeginRead () для каждого байта, который Вы получаете. Это дает пулу потоков хорошую тренировку, Вы определенно видели бы много контекстных переключений. Не настолько уверенный в потреблении дескриптора. Обязательно протестируйте это без присоединенного отладчика.

Попытка DataReceived вместо BeginRead () является определенно чем-то, что необходимо попробовать. Вытяните вместо нажатия, Вы будете использовать поток пула потоков, когда будет что-то происходящее вместо того, чтобы всегда иметь одно активное.

4
ответ дан 1 December 2019 в 05:02
поделиться

Некоторые предложения:

Так как Вы только отправляете 3 байта, у Вас могла быть синхронная Операция записи. Задержка не была бы большой частью проблемы.

Также не создавайте новый AsyncCallback все время. Создайте одного Read и одну Запись AsyncCallback и использование это в каждом начинать вызов.

5
ответ дан 1 December 2019 в 05:02
поделиться

Действительно ли возможно принять данные, прибывающие из последовательного порта и непосредственно отправить его в файл? В высоко скорости в бодах (1 мегабод) трудно обработать этот объем безостановочных данных.

0
ответ дан 1 December 2019 в 05:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: