ふらっと C#,C♯,C#(初心者用) Part158at TECH
ふらっと C#,C♯,C#(初心者用) Part158 - 暇つぶし2ch950:デフォルトの名無しさん (ワッチョイ da2d-cK++)
23/07/30 15:29:45.06 C8zYgP+u0.net
いつの発想だよ…
UIと時間がかかる処理は別スレッドだし
今時のPCならオーバーヘッドは無いに等しいだろ

951:デフォルトの名無しさん (ワッチョイ da2d-cK++)
23/07/30 15:32:39.03 C8zYgP+u0.net
>>936
UIの制御は必要になるけど、それをしないのは手抜きってやつだ

952:デフォルトの名無しさん (ワッチョイ dabd-TJCF)
23/07/30 15:39:50.10 ceI/e8I50.net
>>936
UIがないアプリなら好きにしろ。
UIがあるならUIのお約束を守れ。守れないのは低品質アプリだ。

953:デフォルトの名無しさん (ワッチョイ cf68-6+wX)
23/07/30 16:01:47.86 qP2cEP2w0.net
で応答できないことの何が問題?

954:デフォルトの名無しさん (ワッチョイ 26bc-0TAO)
23/07/30 18:57:09.57 h72pV3U00.net
てゆーか、まだやってたんだ。
ある意味スゲー。

955:デフォルトの名無しさん (ワッチョイ 8f2f-KN61)
23/07/31 02:48:28.98 /pzquaKJ0.net
UIが無応答って状態を勘違いしてる気がする

956:デフォルトの名無しさん (ワッチョイ 73e5-U0W2)
23/07/31 09:07:39.25 kMCzvjpl0.net
まだやってたんだって言うか、1週間近く動きも無く終わったと思われてた話をバカが蒸し返しただけ

957:デフォルトの名無しさん (スフッ Sd8a-kvF/)
23/07/31 13:17:06.46 lng3H2OQd.net
>>942
応答出来ない=次に応答するのが計算が終わったタイミング
と言うことになる
つまり開始後中断したくてUI(例えば停止ボタン)押して
実際に止まるのが計算完了後で
計算結果が表示される直前に終了してくれるオマケ付き

958:デフォルトの名無しさん (スッップ Sd8a-1j9t)
23/07/31 13:19:35.83 xjBtNZZud.net
>>946
>>942みたいな過去の遺物みたいなのにかかわらないほうがいいぞ
「そのうち返ってくるでしょ」みたいな考えのやからは一定数いるからな

959:デフォルトの名無しさん (アウアウウー Sa1f-6+wX)
23/07/31 13:25:23.15 sgBBFIN2a.net
全然ecoじゃない
SDGs連中が飛び付くネタ

960:デフォルトの名無しさん (ワッチョイ becf-WE/L)
23/08/01 01:57:41.21 l/YBSfNu0.net
URLリンク(atmarkit.itmedia.co.jp)
>  Windows上で実行されるアプリケーションのウィンドウは、応答がない状態になると、
> ウィンドウタイトルに「(応答なし)」と表示してユーザーに知らせます。

> “応答がない状態”とは、アプリケーションのプロセスが持つウィンドウオブジェクトが
> 「ウィンドウメッセージ(Window Message)」に5秒(既定)以上、応答しなくなる状態を指します。

こんなん出たんですけどとか言われたら恥ずかしいだろ

961:デフォルトの名無しさん (スップ Sd2a-3oaK)
23/08/01 08:39:12.57 NwjOuTDqd.net
そうやってOSが面倒見てくれてるし気にするな

962:デフォルトの名無しさん (ワッチョイ 73e5-U0W2)
23/08/01 08:48:36.38 jZPe7+0n0.net
気にしろし

963:デフォルトの名無しさん (ワッチョイ 0ba7-4FLK)
23/08/01 19:37:01.30 EZnFv0QC0.net
真のエコはシングルスレッド非同期
プログラミングコストは爆増するけどな

964:デフォルトの名無しさん (ワッチョイ 2301-iCAU)
23/08/01 23:34:51.68 MwS5ZIT40.net
魔法の呪文DoEventsでおk

965:デフォルトの名無しさん (ワッチョイ 8f7c-0u9z)
23/08/02 07:43:03.92 MJ0E5XCG0.net
進捗表示、キャンセルや一時停止を受け付けない設計はクソ。

966:デフォルトの名無しさん (ワッチョイ 17ae-CF7t)
23/08/03 10:08:52.15 icL6sh+90.net
シリアルポートからの送信を出来るだけ高速に受信したいのですが、下記以外に何かありますでしょうか?
また高速化する方法がありましたら、指摘してください。
よろしくお願いします。

LinkedList<byte> LLBuffer = new LinkedList<byte>();
SerialPort sp = new SerialPort();
byte[] buf = Encoding.ASCII.GetBytes(sp.ReadExisting());

foreach(byte b in data)
LLBuffer.AddLast(b);

967:デフォルトの名無しさん (ワッチョイ 0ba7-4FLK)
23/08/03 11:06:07.21 L6gOIzTH0.net
>>955
単なる生バイト配列が欲しいんだったらEncoding.ASCII.GetBytes(sp.ReadExisting())は二重に無駄な事してるから
var buf = new byte[1024];
int count = sp.Read(buf, 0, buf.Length);
for (int i = 0; i < count; ++i) LLBuffer.AddLast(buf[i]);

968:デフォルトの名無しさん (ワッチョイ 17ae-CF7t)
23/08/03 11:41:09.07 icL6sh+90.net
>>956
ありがとうございます。
現在は1024バイト固定で受信しているのですが、
sp.ReadBufferSize()で見ているとどんどんシリアルポートのバッファが溜まって頭打ちになっているので、
アプリ側で出来るだけ取得しておきたいと思い、sp.ReadExisting()の使用を検討しているところです。

969:デフォルトの名無しさん (ワッチョイ 0ba7-4FLK)
23/08/03 12:22:33.04 L6gOIzTH0.net
>>957
IOの方が早いなんてことは有り得ないからwhileで回すとかはしてる?
内部バッファが空の時にsp.Read(buf, 0, buf.Length)するとブロックされちゃうのかな
そうじゃないならwhile ((count = sp.Read(buf, 0, buf.Length)) != 0)、
ブロックされるとしてそれが嫌ならsp.BytesToReadで溜まってるバイト数チェックやDataReceivedイベントで拾うとか

970:デフォルトの名無しさん (スッップ Sd2f-YWx9)
23/08/05 10:43:10.90 wvUeqD5zd.net
誰も突っ込まないけどシリアル受信に間に合わないは普通にあり得るくね、

971:デフォルトの名無しさん (ワッチョイ 9b2f-1PqA)
23/08/05 11:08:11.80 6FXtwa520.net
シリアルってだけで実際のスピードもハードスペックもPCの使用状況も書いてないけど
個人的意見なら、いまどきのハードでC#で普通に作って間に合わんなんて、
他に何か原因がなければ想像できんレベルだが

972:デフォルトの名無しさん (ワッチョイ 01c5-i02c)
23/08/05 11:37:11.83 kMOIqdZr0.net
同期9600bps を試しにやってみたまえ。
LANCとかやね

973:デフォルトの名無しさん (ワッチョイ 9949-HLSB)
23/08/05 11:45:14.79 29MU2LyY0.net
.NET7でnlogがあれやこれやしてもうんともすんとも言わないので
おすすめのログのライブラリとかありまふか

974:デフォルトの名無しさん (オイコラミネオ MMc9-1ro1)
23/08/05 14:09:41.96 wQaB7TT9M.net
nugetのランキング上位にあるやつ使えるのでは?

975:デフォルトの名無しさん (ワッチョイ 472d-SCbl)
23/08/05 15:32:52.86 JFXqS/BH0.net
.NET7でNLog普通に使えてるけどなぁ
ちょっと前のバージョン(5.1.4)だからか?

976:デフォルトの名無しさん (ワッチョイ 472d-SCbl)
23/08/05 15:46:07.77 JFXqS/BH0.net
nugetの最新(5.2.2)にしたけど使えてるな

977:デフォルトの名無しさん (オイコラミネオ MMc9-1ro1)
23/08/05 16:15:39.59 wQaB7TT9M.net
.NET7使ってるのが驚き

978:デフォルトの名無しさん (ワッチョイ 4954-4gg4)
23/08/06 21:10:40.86 t8XxdJlt0.net
その程度で驚くヤツはくるみぽんちおの刑だな。
うちの製品なんて、.net framework 1.1 使ってる製品もある。
しかも重要ユーザーからの要望があれば機能追加までしてる。

979:デフォルトの名無しさん (ワッチョイ b310-jhPE)
23/08/07 07:41:51.88 NZgbVHgQ0.net
XPで動かしてそう

980:デフォルトの名無しさん (ワッチョイ 7be5-uQHI)
23/08/07 09:07:25.45 TF3XFQ9V0.net
OSにしてもランタイムにしても、古いのずっと生き残ってるのあるあるだよな
うちの顧客なんてVB6製アプリをXPで動かしてるとこまだあるしな……

981:デフォルトの名無しさん (ワッチョイ 7be5-uQHI)
23/08/07 09:08:05.81 TF3XFQ9V0.net
流石にNT4はもう居なくなったけど

982:デフォルトの名無しさん (ワッチョイ eb42-tyL0)
23/08/07 09:17:47.25 82JZu0tI0.net
ニューテクノロジ4か
名前にニューって付けて年月経つと碌なことにならないな

983:デフォルトの名無しさん (アウアウウー Sa9d-mBaV)
23/08/07 10:03:51.30 wl/Lx6N5a.net
うめようず

984:962 (ワッチョイ 9949-c/5M)
23/08/07 10:41:55.42 NRD23MMX0.net
NLog動くようになった!
コードで設定すると動く、でもConfigは反映されないからと色々やってたら
「出力ディレクトリをコピー」
「ビルドアクション」
を設定してないことに気づいた
C#(てかVS)久しぶりすぎて各ファイルにあるプロパティの存在を忘れてたw

985:デフォルトの名無しさん (スッププ Sd03-XWNR)
23/08/07 14:14:56.57 MBhkVnR+d.net
ふぅ・・・例外握りつぶしてたぜ・・やっと不具合原因のとっかかり見つけた

986:デフォルトの名無しさん (アウアウクッ MMf3-uQHI)
23/08/07 15:03:38.79 A9F8fN0gM.net
byte high = 0xff;;
bool flag = (high & 0b10000000) != 0;
これをもっとC#っぽくできないの?

987:デフォルトの名無しさん (ワッチョイ 472d-SCbl)
23/08/07 15:16:30.47 gOyFWeUo0.net
>>975
フラグをenum定義したら
[Flags]
enum Hoge : byte
{
 Flag0 = 1 << 0,
 Flag1 = 1 << 1,
 ...
 Flag7 = 1 << 7,
}
var high = ( Hoge )0xff;
high.HasFlag( Hoge.Flag7 );

988:デフォルトの名無しさん (ワッチョイ c379-IXit)
23/08/07 23:19:46.08 4jmmvhVW0.net
enumに属性がなんか気持ち悪いし…使用時にキャストしてるのもなんだかな
#defineが無い弊害がこういうとこで出るのか
C/C++のビット演算はイディオムで綺麗に書けるのにな

989:デフォルトの名無しさん (ワッチョイ 1bd6-SCbl)
23/08/07 23:34:33.91 gDjmIGTi0.net
キャストが嫌なら、複数のフラグをORで連結すれば

990:デフォルトの名無しさん (ワッチョイ 1bd6-SCbl)
23/08/07 23:44:21.58 gDjmIGTi0.net
途中で書き込んじゃった
enumに↓を追加
All = Flag0 | Flag1 | Flag2 | Flag3 | Flag4 | Flag5 | Flag6 | Flag7,
var high = Hoge.All;

991:デフォルトの名無しさん (ワッチョイ 7be5-uQHI)
23/08/08 08:54:05.88 aeM2XQJJ0.net
個人的には、Flagsよりも定義でビットシフトしてるんがなんか嫌だなw
>>975でも十分C#っぽい気はするけどねぇ
C/C++でif(high & 0x80)で済むのはBOOLの実体が数値だからで
C#のboolは別物だからしょうがないし

992:デフォルトの名無しさん (ワッチョイ 7be5-uQHI)
23/08/08 09:22:12.70 aeM2XQJJ0.net
次スレ
ふらっと C#,C♯,C#(初心者用) Part159
スレリンク(tech板)

993:デフォルトの名無しさん (アウアウクッ MMf3-uQHI)
23/08/09 09:18:17.06 tGujvv4CM.net
このままでいい気がしてきた

994:デフォルトの名無しさん (ワッチョイ 095f-SCbl)
23/08/10 00:40:12.02 P/TzKPwA0.net
>>980
ビットシフトで定義するかは好みと慣れだな
C言語でも見かけるし
一応、何ビット目かソース上ではっきりするってメリットがある

995:デフォルトの名無しさん (ワッチョイ b310-uQHI)
23/08/10 07:11:54.17 ao9yBEOh0.net
何ビット目かって表現なら、それこそ>>975の方がC#では普通になったんじゃない?

996:デフォルトの名無しさん (ワッチョイ 2b6e-D1BR)
23/08/11 16:58:32.91 JGKsK+J90.net
ラムダ式ってこうちょろちょろっとした処理を書くのに使うものであってでかい処理は関数定義するのが基本って認識だったんですけど間違ってますかね
もう今のプロジェクトラムダ式渡すところで数十行の関数がガンガン出てきてて
デバッグしにくいわかりにくいでげんなりしています。まぁこれに限らずそもそも表に出る機能単位でしか考えてないのか関数抽出するって考え方があんま無いみたいな現場なんですが……

997:デフォルトの名無しさん (オイコラミネオ MMc9-uQHI)
23/08/11 18:07:32.18 CXONK6kXM.net
>>985
どうとでもいえるけど基本的にはその使い方は特に間違ってはいないので認識が間違っていると思う
処理の委譲目的ならそれが普通かも
関数抽出しやすいなら関数を抽出する
ローカル変数などに依存度が高いならそのまんま書いたほうがいい
設計がしっかりしてクラスを作ってそれを渡しあってるとかなら別だけどそんなことしてられないと思う

998:デフォルトの名無しさん (ワッチョイ c379-IXit)
23/08/11 18:39:03.98 I7dwFhkG0.net
デバッグしたいなら1処理ずつ分けて書き直しゃいいだろ
C#のlambdaはdelegateの意味も暗黙に含んでるからそのものは削らない方がいいけど

999:デフォルトの名無しさん (ワッチョイ b310-uQHI)
23/08/11 20:58:53.23 0dzc0r6z0.net
同じ処理を他でも使うならメソッド化した方がいいと思うけど、そこでしかやらないならラムダでかまわんと思うけどな
今やローカル関数なんてのもあるし

1000:デフォルトの名無しさん (ワッチョイ 395f-17EC)
23/08/19 20:49:54.56 UW3EkLqg0.net
closedxmlでセルに書き込み反映されない…なんで😭

1001:デフォルトの名無しさん (アウアウエー Sa23-NwC7)
23/08/20 02:06:38.74 RsoPGDy3a.net
jsonのテキストをデコードできる関数ないかな?
htmlでいうところのHttpUtility.HtmlDecode()のjson文字列版
「https:\u002F\u002Fwww」を「URLリンク(www)」に変換したい
そんなの自作しろと言われたらそれまでだけど、あるならあるの使いたいので

1002:デフォルトの名無しさん (アウアウエー Sa23-NwC7)
23/08/20 04:06:30.93 RsoPGDy3a.net
Regex.Unescape()でいけるのかな

1003:デフォルトの名無しさん (ワッチョイ 2b10-YAjS)
23/08/20 08:33:15.17 OGvFjvg+0.net
ちょっと前にTwitterのデータ取得して遊んでた時はRegex.Unescapeでやってたけど

1004:デフォルトの名無しさん (ワッチョイ db79-wKkg)
23/08/20 18:10:25.72 Jez4Fpf50.net
そこで普通にjsonパーサ使おうと思わないの何でなん

1005:デフォルトの名無しさん (ワッチョイ 2b10-YAjS)
23/08/20 18:37:23.62 OGvFjvg+0.net
JsonNode.Parseでゲットした配列から取り出した文字列をRegex.Unescapeにかけたんだけどね

1006:デフォルトの名無しさん (アウアウエー Sa23-NwC7)
23/08/20 19:12:02.03 RsoPGDy3a.net
jsonがあるわけじゃなかったから
適当なclass用意して文字列をjsonの書式にフォーマットしてパースして取り出すって流れは気分的にやりたくなかった

1007:デフォルトの名無しさん (ワッチョイ c9c6-H9aa)
23/08/20 20:06:30.57 YUyQ4ipW0.net
"hoge"だけみたいな文字列も整形式のJSONだよ
JsonSerializer.Deserialize<string>("\"hoge\"");
生の文字列なら前後に二重引用符付ける必要はあるだろうけど

1008:デフォルトの名無しさん (アウアウエー Sa23-NwC7)
23/08/20 21:07:24.34 RsoPGDy3a.net
試したら動いた。stringクラス指定だけでできたのか。それは知らなかった

1009:デフォルトの名無しさん (ワッチョイ 93e5-YAjS)
23/08/21 08:03:28.38 Ndtw0dBa0.net
うめか

1010:デフォルトの名無しさん (ワッチョイ 395f-4N9b)
23/08/21 14:43:41.77 s1KrJzLF0.net
質問いいですか?

1011:デフォルトの名無しさん
23/09/10 08:25:05.15 MWuSGE3eL
世界最悪の殺人組織公明党強盗殺人の首魁斉藤鉄夫らテロリス├に乗っ取られた国土破壊省に天下り賄賂癒着しながら莫大な温室効果ガスに
騒音にコロナにとまき散らして気候変動させて日本どころか世界中で土砂崩れに洪水、暴風、猛暑、干ばつ、森林火災にと災害連発させて
大量虐殺してエネ価格に物価にと暴騰させて住民の生活を破壊して私腹を肥やしてるクソ公務員個人に徹底報復しよう!
東京都港区赤坂2-17-10がクソ議員宿舎なのは有名だが「省庁別宿舎 ─覧表」で検索すれば全国の公務員宿舎の位置が容易に確認て゛きるのて゛
拡声器や、騒音バヰクで乗り付けてブァンブアンやりに出向いてやろう!もちろんカによる一方的な現状変更によって都心まで数珠つなぎで
クソ航空機飛ばして閑静な住宅地だろうと航空騒音まみれにして生活に仕事にと公然と妨害してるこいつら利権害虫のことだから騒音なんて
どうということはないんだろうし、航空騒音に比べれば屁みたいな騷音しか出せないだろうが.遠慮なく大騒音まき散らしに出向いてやろう!
政府という傘で好き放題やってる公務員には個人攻撃が有効!図書館やらて゛ブァンブアンやって税金泥棒利権を徹底的に壊滅させるのも正義!
(羽田)ttΡs://www.call4.jP/info.Ρhρ?type=iТems&id=I0000062 , tΤps://haneda-Project.jimdofree.com/
(成田)ttps://n-souonhigaisosyoudan.amebaownd.com/
(テロ組織)tURLリンク(i.imgur.com)/hnli1ga.jpеg

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


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