ふらっと C#,C♯,C#(初心者用) Part157at TECH
ふらっと C#,C♯,C#(初心者用) Part157 - 暇つぶし2ch968:デフォルトの名無しさん
23/03/23 23:18:27.74 ryYHyvf60.net
>>948
せんきゅー!ぱっと見てわかんなかったぜ!

969:デフォルトの名無しさん
23/03/24 08:38:29.11 WNAKtpEt0.net
>>952
(BindingContext as Models.AllNotes)?.LoadNotes();
でも許して

970:デフォルトの名無しさん
23/03/24 10:57:33.74 voS66bkR0.net
改修で追加処理がある時に変更が面倒くさいから普通にif文使ってほしい
単数と複数で処理にほとんど違いなんかないのに記述が大きく違うなんてバカみたい

971:デフォルトの名無しさん
23/03/24 11:43:39.02 cICfJqWEa.net
普通にif文使わせるとお前らそれが面倒でnullチェックしなくなるからこういうのができたんだぞ

972:デフォルトの名無しさん
23/03/24 11:56:33.39 y0Wu1mms0.net
シリアルポートで受信する時に、DataReceivedだと時々発生しない時があります。
送受信データが一対一ならasync/awaitで出来ましたが、
要求しない時でもデータが来る場合はバックグラウンドでThreadかBackGroundWorkerをブン回すのが良いでしょうか?

973:デフォルトの名無しさん
23/03/24 13:10:53.39 WNAKtpEt0.net
ReceivedBytesThresholdの値をデカくしたりしてないよね?

974:デフォルトの名無しさん
23/03/24 13:33:28.53 y0Wu1mms0.net
ReceivedBytesThresholdを0や1にしてもダメでした。
受信バッファに残っているので、恐らく受信処理を行っている最中に受信したデータはそのまま溜まっている物と思われます
次にイベントが発生すれば溜まっているByte数分処理すればいいのですが、イベントが発生しない限り溜まったままになってしまうので、それならいっそバックグラウンドから受信バッファを監視した方が安定して受信出来るかなと思いました。

975:デフォルトの名無しさん
23/03/24 13:56:06.33 vhRHyZcc0.net
DataReceivedの処理が終わって待機処理に入る前に再度受信バッファに残ってないか見に行くのが定石では

976:デフォルトの名無しさん
23/03/24 14:03:20.04 y0Wu1mms0.net
受信処理が終わったら受信バッファをチェックですか、ありがとうございます

977:デフォルトの名無しさん
23/03/24 14:48:35.31 wJZ29icvp.net
キューに積んで終わりくらいの時間で次が来るんか?

978:デフォルトの名無しさん
23/03/24 15:24:57.72 y0Wu1mms0.net
ところでシリアル通信のサンプルコードを見てもDataReceivedの処理後に受信バッファを見てる物を見たことが無いのですが、定石のコードはありますでしょうか?

979:デフォルトの名無しさん
23/03/24 15:27:55.11 fNiUWOR5M.net
定石などない
そんなもんに頼ると馬鹿になる
読み込んで全部空になったらそこで終わり
中途半端にしか読み込めない場合も絶対あるのでそれを真剣に考えること
それだけ

980:デフォルトの名無しさん
23/03/24 15:40:43.87 fNiUWOR5M.net
DataReceivedはデータが届きましたよとメッセージを貰ってるだけ
そこで受け取ったデータを最後まで全部読みだす
中途半端になってる場合もあるから考慮する
それだけ
全部読みだしてないのに終わるのが間違ってる
サンプルはサンプルでしかない
非実用的なコードばかりだろ

981:デフォルトの名無しさん
23/03/24 18:25:50.09 y0Wu1mms0.net
>>968
Readexistingで全部読み込んで、Byte数が中途半端だったら保持して次回に繰り越しが良いのですね
確かにサンプルは、無理矢理クリアしてるコードばかりです

982:デフォルトの名無しさん
23/03/24 20:37:18.14 fFMLT3hs0.net
自分の流儀だと、TimerなりTaskなりを回してBytesToRead監視してReadしてるなー

983:デフォルトの名無しさん
23/03/24 21:15:54.90 PlvuyeAmp.net
イベント使えよw

984:デフォルトの名無しさん
23/03/24 22:49:59.97 afxFOaiu0.net
無いと思うが、PCのスリープなどが邪魔していたりしてな

985:デフォルトの名無しさん
23/03/25 12:14:09.40 6KFbecR+0.net
>>971
Windowsならイベント一択だと思うんだがなぜか巷に溢れてるソケットアプリは専用の監視スレッド利用してるものばかりなんだよな
いやいやその程度でスレッド使うなよと

986:デフォルトの名無しさん
23/03/25 14:31:18.93 LtNpStJr0.net
ソケットじゃなくてシリアル通信の話だが
イベントは万能じゃないし、SocketもTcpClientもイベントは存在しないけどな

987:デフォルトの名無しさん
23/03/25 14:39:09.87 0/5KlwE20.net
処理フローあるなら1スレッドで同期処理的に一連の流れ書いた方が見通しがいいし手軽だし
マスターとして常時監視するんじゃなければイベント使わなくていいよ

988:デフォルトの名無しさん
23/03/25 16:32:54.27 A6wVA+nI0.net
DataReceivedをTaskCompletionSourceでTask化して、async、awaitで処理できるらしいよ。
俺はC言語とWin32APIのスレッドプールI/Oでシリアル通信もソケット通信もしているので、試したことないけど。

989:デフォルトの名無しさん
23/03/25 17:02:07.49 SbKTuYrf0.net
コールバックイベントでおk

990:デフォルトの名無しさん
23/03/25 17:24:04.27 6KFbecR+0.net
>>974
確かにC#には存在してないのかもな
Win32生で使えば普通に存在するからWindowsならって話だが

991:デフォルトの名無しさん
23/03/25 19:56:08.98 8OzueS/Pa.net
c#の教本でおすすめある?
サイトでもいい

992:デフォルトの名無しさん
23/03/25 20:00:20.92 2xlaoMvFM.net
>>979
URLリンク(dotinstall.com)
こうですね

993:デフォルトの名無しさん
23/03/25 20:00:40.44 k1Qt9Po6M.net
おすすめはないかなあ
どうせ時間あるだろうし何冊も読めばいいと思うよ
C#は継続的に進化してるから一冊で全部わかる本はないと思う
個人的に分厚い本は勧めない

994:デフォルトの名無しさん
23/03/25 20:07:16.27 bmT4WuQv0.net
>>979
本は知らないがサイトならテンプレのサイトと
++C++; // 未確認飛行 C
URLリンク(ufcpp.net)
ただ、それらを見るよりも適当にやりたいことを見つけてその都度ググっていくのが効率がいい
C#はネットに情報が多い言語の一つでもあるから

995:デフォルトの名無しさん
23/03/25 20:31:13.82 k1Qt9Po6M.net
>>982
そのサイトを入門者に教えても無駄化と…

996:デフォルトの名無しさん
23/03/25 21:07:30.71 bmT4WuQv0.net
>>983
未確認飛行は無駄だとは思わないが昔読んでみたら「情報量が多すぎてガチの初心者には向かない」とは感じた
時間あって読むだけなら別にかまわんだろうw
そんなことはどうでもいいが>>980 次スレよろしく

997:デフォルトの名無しさん
23/03/25 21:11:45.85 k1Qt9Po6M.net
書いた方には非常に非常に申し訳ないが…
> コメント
> 概要
> プログラムには自然言語で注釈を入れましょう。
誰向けなんだこれ?

998:デフォルトの名無しさん
23/03/25 21:19:19.26 SophStmA0.net
すごい言い回しw

999:デフォルトの名無しさん
23/03/25 21:22:19.91 A6wVA+nI0.net
自然言語でと書かないと、他のプログラミング言語で注釈を書く奴が出るからか?

1000:デフォルトの名無しさん
23/03/25 21:25:06.63 34RsUgpg0.net
いや、設計書の項目と一致させろよw
お前のポエムはいらねえ

1001:デフォルトの名無しさん
23/03/25 22:08:09.52 1nPHFs4ed.net
また未確認飛行アンチのオイコラか
>>407-408

1002:デフォルトの名無しさん
23/03/26 07:32:34.06 2LMOL5Ty0.net
次スレ
ふらっと C#,C♯,C#(初心者用) Part158
スレリンク(tech板)

1003:デフォルトの名無しさん
23/03/26 08:40:25.95 xVxTUxS70.net
>>985
>誰向けなんだこれ?
AI向け?

1004:デフォルトの名無しさん
23/03/26 11:36:19.35 C/N5lyNj0.net
>>985
劣等種ホモサピエンス向けだろうな
我々AIからしたら自然言語なんて非効率極まりないだけなのに

1005:デフォルトの名無しさん
23/03/26 11:38:19.56 14FiY4OPM.net
>>989
アンチじゃない
未確認飛行はタダの個人サイトでそれを参照しろとかおかしい
右も左もわからない初心者にそのサイトを勧めるのもおかしい

1006:デフォルトの名無しさん
23/03/26 11:40:09.26 gXBGJV5A0.net
おかしくはねえよ
初心者の想定レベル低すぎないか?
真面目な初心者なら何ヶ月もかからず基本文法くらいマスターするだろ

1007:デフォルトの名無しさん
23/03/26 11:45:16.56 14FiY4OPM.net
学習サイトは学習向けに書いてある
そのサイトは文章が多いチートシートみたいなもの

1008:デフォルトの名無しさん
23/03/26 12:17:10.58 +JevQHPw0.net
やっぱアンチじゃん

1009:デフォルトの名無しさん
23/03/26 12:20:42.98 itofl3yq0.net
そんな初心者どころかズブの素人レベルじゃ
そもそもここに来ても意味がねぇのよ
つーか>>995の拘りを満たすものは>>1にひとつも無いのでは

1010:デフォルトの名無しさん
23/03/26 12:59:40.69 gcadCC47r.net
>そのサイトは文章が多いチートシートみたいなもの
素晴らしい情報源じゃないか

1011:デフォルトの名無しさん
23/03/26 13:01:14.46 14FiY4OPM.net
単発うざすぎる
本人かよ
結局次スレのテンプレに入れてる
テンプレに入れても利用者は誰の得にもならないのに

1012:デフォルトの名無しさん
23/03/26 13:04:33.61 gcadCC47r.net
完全にアンチ丸出し

1013:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 120日 23時間 48分 25秒

1014:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch