ふらっと C#,C♯,C#(初心者用) Part159at TECH
ふらっと C#,C♯,C#(初心者用) Part159 - 暇つぶし2ch371:デフォルトの名無しさん (ワッチョイ 85cf-pUf+)
23/10/07 20:05:04.36 M9UZ8U5c0.net
>>366
クラス変数という用語をご存知ですか?
イエスかノーでお答えください

372:デフォルトの名無しさん (オイコラミネオ MMad-GYY9)
23/10/07 20:06:57.65 Dbx341NqM.net
>>367
知らない

373:デフォルトの名無しさん (オイコラミネオ MMad-GYY9)
23/10/07 20:11:20.39 Dbx341NqM.net
誤植ですねについてああだこうだ言うのが揚げ足取り
イエスかノーかで答えてくださいに知らないと答えたのについてああだこうだ言うのが揚げ足取り

全然どうでもいいことにいちいち突っかかってくるID:M9UZ8U5c0が悪い

374:デフォルトの名無しさん
23/10/07 20:13:55.52 M9UZ8U5c0.net
>>368
これは失礼
他の言語の知識がなくてクラス変数自体を知らなかったのなら>>358の発言も仕方ない
ちなみにC#で言う静的メンバ変数に相当するものなので頭の隅に置いておこう

375:デフォルトの名無しさん
23/10/07 20:40:11.49 YtgTJ7v50.net
昔はできなかったがinterfaceにstatic memberを定義できるようになったんだよ

376:デフォルトの名無しさん
23/10/07 21:33:04.56 kQU1DN1N0.net
特に継承するわけでもないinterfaceの変数を使っていたので
staticでよくね?って思ったまでです。

377:デフォルトの名無しさん
23/10/07 21:41:19.16 kQU1DN1N0.net
>>362
メソッド以外定義できないんですか?普通にint xxx{get}みたいに変数定義してましたけど?

378:デフォルトの名無しさん
23/10/07 21:58:12.16 WiFpk8200.net
節子、それ変数やない、プロパティや

379:デフォルトの名無しさん
23/10/07 22:46:08.14 OKMBnv3y0.net
interfaceは実態まで定義できるようになって
これじゃ多重継承と何が違うんだろうね

380:デフォルトの名無しさん
23/10/07 23:10:34.30 Z0CAZWyi0.net
今や関数指向全盛じゃん
オブジェクト指向が諸悪の根源じゃねーーの
能力足りてないエンジニアばっかなんだから

381:デフォルトの名無しさん (ワッチョイ 0d01-Fpxc)
23/10/08 01:41:02.74 G8JXzzlJ0.net
関数指向全盛って初めて聞いた
データとかあるんですか

382:デフォルトの名無しさん (ワッチョイ bdad-bMpK)
23/10/08 02:27:58.84 4tUP3LVs0.net
>>376
まず構造化から学び直せ

383:デフォルトの名無しさん (ワッチョイ 7610-GYY9)
23/10/08 07:23:28.50 dIUTdDjP0.net
>>376が関数嗜好なだけでは

384:デフォルトの名無しさん
23/10/08 19:57:18.08 7GYxqXei0.net
(1)オブジェクト指向プログラミング A. クラスの定義 B. オブジェクトの生成 C. カプセル化 D. 継承 E. ポリモーフィズム
(2)関数型プログラミング A. 高階関数 B. クロージャ C. ラムダ関数 D. ジェネレータ E. デコレータ

385:デフォルトの名無しさん
23/10/08 22:38:19.92 ICyLMX1g0.net
>>380
デコレータはどちらかというとOOP用語
関数型では単なる関数合成の一種なのでわざわざデコレータとは呼ばない

386:デフォルトの名無しさん
23/10/08 23:26:13.26 5JmMmKk30.net
で、それでYOLOXは動くんかい

387:デフォルトの名無しさん
23/10/09 00:47:00.57 N+sXw7NG0.net
Taskについて質問です。
階層構造データを再帰的に探索する処理を階層ごとにTask.Factory.StartNewで並列化させて作ってるのですが、
WinFormsのControl.Invokeのように、子タスク内から親タスクのコンテキスト上で実行させたい処理があります。
今は親タスクで作成したリストを追加するActionを子タスクに渡して、後で親タスクでリストから取り出して処理を行っていますが、
可能であればControl.Invokeのように、子タスクのコンテキストのタイミングで親タスクのコンテキストに明示的に移って実行したいと考えています。
これを実現する方法があれば教えてください。Invokeの仕組みを解説してるサイトもあったのですが、意図する方法は見つかりませんでした。
void parent_proc(Tree tree) {
var locker = new ReaderWriterLockSlim(); var datalist = new List<string>(); var tasklist = new List<Task>();
Action<string> adddata = (string d) => { //排他制御でデータをリストに追加
locker.EnterWriteLock(); datalist.Add(d); locker.ExitWriteLock(); };
foreach (var node in tree) {
if (node.child != null) {
var task = Task.Factory.StartNew(() => { child_proc(node.child, adddata); }, TaskCreationOptions.AttachedToParent);
tasklist.Add(task);
} else {
datalist.Add(node.data);
}
}
Task.WaitAll(tasklist.ToArray());
foreach (var data in datalist) { //今は親タスクのコンテキスト上で処理している
}
}
void child_proc(Tree tree, Action<string> adddata) {
foreach (var node in tree) {
if (node.child != null) {
Task.Factory.StartNew(() => { child_proc(node.child, datalist); }, TaskCreationOptions.AttachedToParent);
} else {
adddata(node.data); // このリスト追加処理を無くして、ここで親コンテキストに移って実行したい
}}}

388:デフォルトの名無しさん
23/10/09 10:33:03.03 iALOF4I2M.net
分かってると思うけど親コンテキストには移れない
親に処理を委譲してるだけ
人間と同じ
それなら親が適切なタイミングでリストを見て実行する様に書き換えるだけだろ
当然waitもawaitも出来ない
脳内でじっくり何をやるか順をシミュレートして考え直すしかない

389:デフォルトの名無しさん
23/10/09 11:18:08.46 N+sXw7NG0.net
>>384
ありがとうございます。
よくよく考えるとControl.Invokeにはメッセージループがあるので、
ワーカスレッドから渡されたdelegateを同期的に実行するタイミングがある事に気付きました。
今回の場合Task.WaitAllにタイムアウトを入れて、子タスクのデータを泥臭くポーリングすることで意図する事ができました。
while (!Task.WaitAll(tasks, 50)) { check(); } // check内で子タスクデータを処理
check(); // 全子タスクが完了した後残りデータがあれば処理
ウィンドウが無いケースでもExecutionContextで強引に実現できそうな記事も見つかりましたが、
やろうとしてる事に対して複雑になりすぎるので今回はこれでいこうと思います。

390:デフォルトの名無しさん (ワッチョイ 6ecb-iLfk)
23/10/10 06:13:55.38 Cej5/emK0.net
キャストとパースは同じものでしょうか?
キャストは型変換で、その手法の1つがパースというイメージです。

391:デフォルトの名無しさん (ワッチョイ 5ae5-GYY9)
23/10/10 08:39:26.85 +0pTTr910.net
違います

392:デフォルトの名無しさん (ワッチョイ 6ecb-iLfk)
23/10/10 10:21:35.45 Cej5/emK0.net
キャストとParseメソッドの違いは、主に次の点です:

キャストは同じ型の変換に使用されます。つまり、基本的なデータ型間での変換(例: int から double への変換)に適しています。一方、Parseメソッドは、異なる型のデータを文字列から変換するために使用されます。

キャストは基本的に明示的な型変換です。つまり、変換先の型を明示的に指定する必要があります。例えば、(int)doubleValue というように変換先の型をカッコ内で指定します。一方、Parseメソッドは、変換元の文字列が適切な形式であることを確認し、それを適切な型に変換します。具体的な型指定は不要です。

理解
ありがと(*´ω`*)

393:デフォルトの名無しさん (ラクッペペ MM0e-1G1b)
23/10/10 10:34:12.03 l0kLdmnhM.net
キャストは同じ型の変換に使用されます。

いきなり意味不明でワロタ

394:デフォルトの名無しさん (ワッチョイ 6ecb-iLfk)
23/10/10 18:19:35.44 Cej5/emK0.net
テキストファイルから読み込んだ数字というのは文字列なんですね
だからparseが必要ってことか

395:デフォルトの名無しさん (アウアウウー Sa39-OOOs)
23/10/12 11:00:16.99 u59ybXeVa.net
float32/64からint32/64にキャストするときって
小数点以下は勝手に切り捨てられるってことで良いのかな
オーバーフローしてたらどうするのかな
色々面倒だよね
「同じ型の変換」って言われると
int32<->int64
の間のキャスト観たいなのを想像する
これも問題無い訳じゃないけど
parseは文字列からの変換を普通に思い浮かべるが
jsonのparseとかみたいに構造まるごと変換のときも使うしな

396:デフォルトの名無しさん
23/10/12 11:30:51.26 /aj2HENwM.net
マニュアル読め
全部書いてある

397:デフォルトの名無しさん
23/10/12 21:34:09.63 ZXm8+EHB0.net
その言葉が聞きたかった

398:デフォルトの名無しさん
23/10/13 01:32:05.01 /NTFMnAJ0.net
VisualC#を独習している者です。
教えてください。
GridViewコントロールに←→のような、カレント行を移動させるボタンって、ツールとして用意されていないのでしょうか?
コマンドボタンコントロールを並べて自作するしかないのでしょうか?

399:デフォルトの名無しさん
23/10/13 01:33:44.55 yXjHmc7Hd.net
引き続き独習してください

400:デフォルトの名無しさん
23/10/13 01:34:36.65 h+M8WaIua.net
そういうリッチな機能は標準じゃない
欲しいなら自作もしくは適当なUIライブラリ

401:デフォルトの名無しさん
23/10/13 01:43:53.31 /NTFMnAJ0.net
>>396
ありがとうございました。

402:デフォルトの名無しさん
23/10/13 07:24:31.11 5yHLdduY0.net
プログラミングの基礎固めってどこまでやるもんでしょうか
成果物作ろうとしても基礎が出来ないと効率悪いですよね

403:デフォルトの名無しさん
23/10/13 08:39:13.59 61zwOKk/M.net
このへんまで

404:デフォルトの名無しさん
23/10/13 09:19:59.83 HwONiL7X0.net
基礎学習は適当に切り上げてなにか作らないと続かないよ

405:デフォルトの名無しさん (ワッチョイ 6ecb-iLfk)
23/10/13 13:08:28.58 5yHLdduY0.net
>>400
配列の使い方程度なら基礎ですよね?
ゲームなどの成果物はすぐにでも作りたいのですが、他人のコードを読めない問題に直面しまして、基礎からやり直しです。

406:デフォルトの名無しさん (ラクッペペ MM0e-zIjd)
23/10/13 13:40:14.28 ZKg5gD/yM.net
倉庫番の人か

407:デフォルトの名無しさん (ワッチョイ 8d2a-pUf+)
23/10/13 14:03:01.11 C21zpC1k0.net
こないだの配列宣言の話のときは途中でフェードアウトしてたな
そういう中途半端な姿勢ではこの先も危ういだろう

408:デフォルトの名無しさん (ワッチョイ 6ecb-iLfk)
23/10/13 14:09:32.71 5yHLdduY0.net
ただの誹謗中傷になってる場合は、出来るだけ見ないようにしてます

409:デフォルトの名無しさん (ワッチョイ 8d2a-pUf+)
23/10/13 14:13:56.90 C21zpC1k0.net
誹謗中傷とそうでないものの区別がつかないならこのスレには向いてないよ
他所行ったほうがいい

410:デフォルトの名無しさん (ワッチョイ 6ecb-iLfk)
23/10/13 14:17:45.01 5yHLdduY0.net
それは受け取り方にもよるんですよね
特に人格に対する中傷なんかは得るものがない割に、気が滅入ります
主観的にどう受け取るかという部分もありますし、誹謗中傷の定義は万人共通ではないかと

411:デフォルトの名無しさん (ラクッペペ MM0e-1G1b)
23/10/13 14:25:28.33 61zwOKk/M.net
配列の宣言、作成、初期化、参照

古典のC言語でもポインタが理解できなくてリタイヤする奴は沢山いた

C#ではとても書きやすくなっているが同じ機能があるということは同様に難しいということ
逃げるなら早い方が良い

412:デフォルトの名無しさん (ワッチョイ 8d2a-pUf+)
23/10/13 14:31:08.93 C21zpC1k0.net
>>406
じゃあ聞くけど>>340-341のどこを中傷だと感じた?
俺は極力そういう言葉を避けて相手をしたつもりだけど

413:デフォルトの名無しさん (ワッチョイ 6e83-AlWi)
23/10/13 14:56:06.30 U+TO1bu90.net
>>406
お前はもう来るなよ
消えろや

414:デフォルトの名無しさん (ワッチョイ b133-Ju92)
23/10/13 15:44:17.55 dO1Gm34h0.net
>>401
Unityでゲーム作るのが目的なんだろ?
だったら、作って覚える系の入門書をどれか一冊こなしてみればいいと思うよ
そうすれば何が不足しているのか、もう少し具体的に自覚できるようになるから

415:デフォルトの名無しさん (ワンミングク MMea-B9JW)
23/10/13 15:58:28.16 Obwc2RPrM.net
1ヶ月も同じことをグダグダしてる馬鹿は荒らしか?そうでなければ才能ないから諦めて消えろ

416:デフォルトの名無しさん
23/10/13 19:01:36.48 aXuG2/tR0.net
入門書を読めというアドバイスには意地でも耳を傾けない初心者

417:デフォルトの名無しさん
23/10/13 20:52:48.46 p2gW+gfLM.net
ブラックジャックを思い出した

418:デフォルトの名無しさん
23/10/13 21:10:42.40 zzxv1uCg0.net
他人のコードを読み解くのは自分でコードを書くよりも能力が要る
断片的なネット記事から基礎を学習するのも他言語でプログラミングに慣れてないとちょっと厳しい
まぁ、完全な初心者は定番の入門書を読めってことなんだけど、聞く気無いんだろうなぁ

419:デフォルトの名無しさん
23/10/13 21:26:25.51 xHhmIQhj0.net
せめていい入門書はありますか?くらいには変わってほしい。

420:デフォルトの名無しさん
23/10/13 21:41:30.13 7GZqpMG8d.net
これでまたしばらくだんまりでほとぼりが冷めた頃に的外れな質問してくるようならダメだな

421:デフォルトの名無しさん
23/10/13 22:57:31.42 9b0YvF5R0.net
初心者には入門書「だけ」は無理だよ
環境設定とか、バージョンの組み合わせとかで動かないことが多い
その場合、初心者は解決できない
ググっても無駄だし

422:デフォルトの名無しさん
23/10/13 23:21:21.97 79LHTXDX0.net
俺はお前が判んなくても一向に困らないし相手してやってるのは自己満足の暇つぶしでしかねーんだよ有難く思えよ?ただし理解しようとしない馬鹿の常駐だけは勘弁
がこのスレ住人の大体の本音だろう。つまり馬鹿の相手をするな

423:デフォルトの名無しさん
23/10/14 01:34:27.59 Z8feDlim0.net
他人のコードを読むと勉強になると言うのは嘘。
情弱は、それに引っ掛かる
正しくは、他人のコードを無限に時間を浪費して読むと、
ほんの少し分かると言うだけ。
それを10年やっても、半年ぐらいの初心者に勝てない
他人のコードを読むのは、自分で書くよりも、10倍以上難しいし、
さらに悪い事に、記憶の定着率も最悪。
だから、勉強にならない
初心者は、掌田津耶乃みたいな入門書で良い
特に、ひろゆき・ホリエモンみたいなプログラミングの素人に聞かない事。
彼らは、やった事ないでしょ?

424:デフォルトの名無しさん
23/10/14 01:53:04.22 fodO8s4z0.net
AIに聞くのも無しだな
AIは平気で自信満々に大嘘を吐く
もちろん合ってる場合もあるけど、知識が無いと真偽を判断出来ない

425:デフォルトの名無しさん
23/10/14 01:53:43.47 fUs4mpOo0.net
>>419
こういうバカは無視でいいぞ

426:419
23/10/14 02:44:05.87 Z8feDlim0.net
これで初心者が、Ruby on Rails を学んで転職していくのが分かるでしょ?
それ以外の言語が通用しない理由。
10年やっても、何も作れないから
大学でC をやった香具師の99%が、プログラミングはしょーもない。
何も作れないとやめていく。
Cの教師が職を失いたくないからやってるだけなのに、それにだまされているだけ
C# も同じ。初心者ができるわけない。
9割がモデラー。プログラマーなんて、ほぼいない
Rails以外で、初心者が転職できる事はない!
難しさの桁が違う
3D モデルを作って動かすんだよ。
クォータニオンとか、数学物理をやっていないと無理。
Python と同じ。文系なんて採用されないでしょ。
だから、文系のアホは皆、Railsへ行く
プログラマーはまず、Railsなどをやった後の話

427:デフォルトの名無しさん
23/10/14 03:58:59.56 kxoihP4v0.net
C/C++も結局は環境依存の各種ライブラリを使わないと初心者では大したものは作れない
普通の授業だとファイル入出力までで終わりで
ディレクトリ操作のdirect.hなんて教えてくれる所は少ないからな

428:デフォルトの名無しさん (ワッチョイ 39f8-jJly)
23/10/14 07:56:47.72 uWMJSV260.net
RORはGPLに汚染されたので関わらないのが吉

429:デフォルトの名無しさん (ワッチョイ 8b10-pCU2)
23/10/14 08:14:57.36 UlVPgub+0.net
配列の話の時も、どういう理解で話してんのか皆が疑問に思ってんのに
質問するだけで疑問への説明も無くフェードアウトだったからなぁ

430:デフォルトの名無しさん (ワッチョイ 13e5-pCU2)
23/10/14 08:20:19.40 VmmeRCt60.net
言われた通りやってるだけでプログラミングに対する目的意識が無いから
入社後に作らせてみてもネットのコピペとかばっかで内容理解してないんだよな
そりゃあ何も作れるわけないわ

419とかそれ系の僻みじゃねぇの?w

431:デフォルトの名無しさん (ワッチョイ 7b93-f0fU)
23/10/14 11:18:53.62 eUQTPEKE0.net
小学校6年くらいの段階でC#でテトリス作れたら将来有望?
最近の子供はまじでプログラミングに関しては優秀なイメージ
C#分かってる小学生10人に1人くらいはいそう

432:デフォルトの名無しさん (ワッチョイ 7b93-f0fU)
23/10/14 11:23:19.49 eUQTPEKE0.net
同僚の子供がC#でテトリスを応用化したゲーム作っててまじで焦ってる
テトリスなんて入社研修で作るからようは12年も先取りしてるってこった

433:デフォルトの名無しさん
23/10/14 12:03:13.89 JNPOXyOW0.net
子供が大人にプレゼンしてる番組あるじゃない
あれみたいに好きでやってると脳はバンバン吸収する
オレの脳は歴�


434:jや城の良さをプレゼンされても全然入ってこない



435:デフォルトの名無しさん
23/10/14 12:06:37.52 x03gZ5vca.net
>>420
掌田津耶乃はNGワードに入れてる

436:デフォルトの名無しさん
23/10/14 12:07:19.53 x03gZ5vca.net
あれ?アンカ間違った
>>421
掌田津耶乃はNGワードに入れてる

437:デフォルトの名無しさん (ワッチョイ 7b93-f0fU)
23/10/14 14:03:24.13 eUQTPEKE0.net
>>429
テトリスってことは難めの非同期とかも理解してるってことだよな
ブロックの回転とか難しそうだしマニアックな文法も理解してそうだ
人生余裕なんだろうな

438:デフォルトの名無しさん (ワッチョイ 315f-iZeJ)
23/10/14 14:48:41.51 XZPKtcR/0.net
入門がてら、はじめて自作のWindowsフォームソフト(ストップウォッチ)を作りました。
今後もC#の学習を続けてもっと技術を身につけたらこのソフトも機能追加して改善していくつもりです。

そこでお聞きしたいのですが、VisualC#において、バージョン番号の管理ってできないでしょうか?
現在は、何か手を加えるたびに、アップデート記録.csファイルに変更点をコメントで記述し、メインフォームに
あるラベルコントロールのテキストを「ver.1.00」から「ver.1.01」へ等と手で書き換えています。
なんとなくの想像ですが、「いまのバージョン番号」「前バージョンからの変更点」を記録しておく仕組みが
VisualStudioかVisualC#にはあるのではないかと思うのですがいかがでしょうか?
プロの人も私と同じように手作業でやってるとは思えないのですが。

439:デフォルトの名無しさん (オイコラミネオ MMd5-pCU2)
23/10/14 15:51:21.57 VHbVocpfM.net
プロの人は仕様書に書かれたのを手で更新してると思うw

ソースコード自体のバージョン管理はgit
変更はこれでさかのぼれる

その他にバージョンの番号の仕組みはあるにはあるけどバージョン管理とは言うもののそれは実際何なのかと言うことになる
そこの入り口を通ってないと仕組みを知ってもあまり活用できない

ドボンと言うサイトにも書いてあるけどじゃあ理解されるのか使われるのかと言うと疑問
個人では日付管理レベルぐらいじゃないかと

440:デフォルトの名無しさん (アウアウエー Sae3-J6+P)
23/10/14 16:03:02.60 zTCJ5Aqla.net
バージョン番号(ビルド番号)を自動設定したいなら、プロジェクトの設定でビルド時に実行できるコマンドを設定できるから
そこに「テキストファイルから数値読み込んでその数値をひとつずつ大きくして上書きする」コマンドラインツールを自作して設定しとけばいい
そしたらビルドするたびにそのツールが実行されて勝手にビルド番号が上がってく
ストップウォッチでは起動時のそのテキストファイルを読み込んで数値を表示するようにしときゃいい

441:デフォルトの名無しさん (ワッチョイ 392f-wwqB)
23/10/14 17:05:06.76 QqyzTN0i0.net
>>433
実行モジュールのバージョン管理とソースコードのバージョン管理がごっちゃになってるようだから
まずそこを区別して考えよう

442:デフォルトの名無しさん (オイコラミネオ MMd5-pCU2)
23/10/14 21:07:01.90 VHbVocpfM.net
>>427
マジレスするとテトリスはもう使い古されてて
数年前にはyoutubeで1時間でテトリス作ります見たいなのが溢れてた
それを追えば普通に同じものは出来る

それは確かcだったけどC#のも探せばあるだろう
どちらかと言うとそこがスタートラインかな
まともに完成品をコピー出来ることが重要

ライブコーディングが流行ってた時期はもう過ぎてるけどゲーム制作の需要はまだ続いてる

443:デフォルトの名無しさん (ワッチョイ 8b10-pCU2)
23/10/14 21:14:29.46 UlVPgub+0.net
高速コピーすれば理解できるわけじゃないけどな

444:デフォルトの名無しさん (オイコラミネオ MMd5-pCU2)
23/10/14 21:20:50.18 VHbVocpfM.net
自分が大学に入った際に実習室の脇に置いてあったDOSマシーンに先輩の作ったテトリスが入ってた
それは普通のレベルだったけどコマが6角形になった奴も作ってた
誰かの作ったものを自力で作り直したらしいけど難しすぎて全然面白くなかった
完成度は以上に高かったが独自ルールが入っててそれが余計に邪魔だった

やれる人は一度進むとどこまでも自力で突き進める
他人に頼らない

445:デフォルトの名無しさん (スップ Sd73-YgdQ)
23/10/14 21:24:46.58 abaBOYXtd.net
テトリスが使い古されてるかどうかはそれを作れる小学生が有望かどうかには関係ないわな

446:デフォルトの名無しさん (オイコラミネオ MMd5-pCU2)
23/10/14 21:31:03.53 VHbVocpfM.net
事実として誰にでもテトリスはコピーはできる
その事実を知らないでそこだけを見て有望だと早とちりしたらかわいそうじゃないか

447:デフォルトの名無しさん (アウアウエー Sae3-J6+P)
23/10/14 21:37:50.07 zTCJ5Aqla.net
使い古されたアイデアのテトリスだろうとできたならそれはすごい
さらにきちんと配布できる形式までもっていって他人がプレイしてるなら神だよ
妄想するだけで出きる気になってるだけの奴がほとんどだからな

448:デフォルトの名無しさん (スップ Sd73-YgdQ)
23/10/14 21:38:29.71 abaBOYXtd.net
重要なのはコピーできるかどうかじゃなくて実際にコピーしたかどうかやろ

449:デフォルトの名無しさん (オイコラミネオ MMd5-pCU2)
23/10/14 21:40:24.49 VHbVocpfM.net
当人の作りたいものがテトリスならまあなんとなく理解出来るけど
今どきの小学生がテトリスを自発的に作りたいと思うかどうかは謎

450:デフォルトの名無しさん (ワッチョイ b3bd-AzOG)
23/10/14 21:42:41.20 eGjaQVx20.net
スイカゲームを作ろう。

451:デフォルトの名無しさん (オイコラミネオ MMd5-pCU2)
23/10/14 21:46:07.15 VHbVocpfM.net
テトリスの横幅を60マスぐらいにしたりなどアイデアはいろいろ出てくるはず
そこらへんがまずスタート+0.5ぐらい

自分らの世代は小学生のころからハンドアセンブルしてVRAMいじってたけどそういうのとは世界が違う
早ければ偉いと言うものでもないしマイペースでやればいい

452:デフォルトの名無しさん (スップ Sd73-YgdQ)
23/10/14 21:59:46.82 abaBOYXtd.net
オイコラはとにかく自分の昔話自慢話をしないと気がすまないのな

453:デフォルトの名無しさん (オイコラミネオ MMd5-pCU2)
23/10/14 22:02:18.89 VHbVocpfM.net
脳は使わないと衰える
使えよお前も

454:デフォルトの名無しさん (オイコラミネオ MMd5-pCU2)
23/10/14 22:04:52.58 VHbVocpfM.net
ゲーム作るんならリアルタイム要素の少ないパズドラとかカードゲームとかみたいな今のソシャゲ的なものを作るほうが楽だし
面白味がある

それじゃなくてテトリス
何か答えは出てるだろ?

455:デフォルトの名無しさん (スップ Sd73-YgdQ)
23/10/14 22:06:17.01 abaBOYXtd.net
>>448
それで何か言い返したつもりなの?

456:デフォルトの名無しさん (オイコラミネオ MMd5-pCU2)
23/10/14 22:08:12.62 VHbVocpfM.net
だから脳は使うものだと…

457:デフォルトの名無しさん (スップ Sd73-YgdQ)
23/10/14 22:11:16.66 abaBOYXtd.net
脳を使って出てくるのがオレスゲーばっかの人よりはマシなのよ

458:デフォルトの名無しさん (ワッチョイ d1ff-Fhx2)
23/10/14 22:28:26.27 Wcju1f810.net
C#で初めて作ったのがISBN変換機という誰得なアプリ。
電卓のフォームにISBN13を打ち込んだらISBN10に変換してくれるだけ。

459:デフォルトの名無しさん (ワッチョイ 4901-ZsDs)
23/10/14 23:07:53.04 8UeeWOHx0.net
>>453
それが自分の実用ニーズを満たしていたのならテトリスより何百倍もいいと思うぞ

460:デフォルトの名無しさん (オイコラミネオ MMd5-pCU2)
23/10/14 23:12:54.96 VHbVocpfM.net
自分もそう思う
自分の作りたいものを作れる能力だけが必要なのでプログラムは非常にハードルが低い
配列すら使えなくても問題ないと言うか最近は旧来の配列をそのまま使ってる人は少ない

461:433 (ワッチョイ 315f-iZeJ)
23/10/15 00:06:47.24 lg0OQoNW0.net
>>434-436
ありがとうございました。
私の想像してるようなもの(バージョン登録フォームのような機能)はないのですね。
とりあえず今までのやり方を続け、上級者の方法を知ることができればそれをマネすることとします。

462:デフォルトの名無しさん
23/10/15 01:27:35.26 vJVqhjXx0.net
>>456
己の道を突き進む前にせめてこのへんは目を通してみて
URLリンク(araramistudio.jimdo.com)
URLリンク(helve-blog.com)

463:デフォルトの名無しさん (ワッチョイ 315f-iZeJ)
23/10/17 19:50:26.90 MR10mjT/0.net
>>457
ぴったり自分の知りたかったことでした!ありがとうございます!!

464:デフォルトの名無しさん
23/10/26 11:39:53.77 hbOK49Zj0.net
class A : B { }
public Fuga( List<B> hogeList ) { }

List<A> hogeList = new();
Fuga( hogeList );
と呼び出そうとすると型が変換できないコンパイルエラーになるんですが、何故?
Fugaの中ではクラスBの値しか使わないです

465:デフォルトの名無しさん
23/10/26 11:55:26.59 54WAJ7qI0.net
Fugaが内部でこういうことやるかもしれないじゃん?
hogeList.Add(new C());
// class C : B {}
Fugaが読み取りしかしないならIReadOnlyList<B>を使うという方法がある

466:デフォルトの名無しさん
23/10/26 12:09:16.76 5lqk6WWS0.net
>>453
むしろ変換できるって初めて知った

467:デフォルトの名無しさん
23/10/26 12:46:04.83 hbOK49Zj0.net
>>460
なるほど、確かに。
ありがとうございました。

468:デフォルトの名無しさん (ワッチョイ fae5-JD/u)
23/10/27 09:13:10.14 4nGOHp4Z0.net
>>459
public Fuga<T>(List<T> hogeList) where T : B {}
こうするとか

469:デフォルトの名無しさん
23/10/27 10:15:54.51 nBxrDXuS0.net
なぜ基底クラスの方を使う
基底クラスの操作は基底クラスに書きやがれ

470:デフォルトの名無しさん
23/10/27 10:38:48.98 4nGOHp4Z0.net
件の関数が派生クラスに書かれているかどうか明記されてないし

471:デフォルトの名無しさん (ワッチョイ 1379-JwVi)
23/10/28 10:34:16.28 Wr7RJXLy0.net
OpenCVSharpを使い始めたんだが思いの他情報が少なくてつらいな
chatGPTを叱り付けながらpythonのコードから変換してる
コードが正しいんだか判らないからpythonてうんこ環境も結局入れる羽目になってる
うんこー

472:デフォルトの名無しさん (ワッチョイ 5101-LiJd)
23/10/28 11:04:10.33 LbOhwKX60.net
OpenCVSharpてのがラッパーとして定番なら使いやすくできてるのだろう
昔同様にopenCLラッパーを使ったが、良く出来てるなと思った(オレには作れん)
CPUとGPUに同じソース書けて、同時に全開で使うのは脳汁でたわ

473:デフォルトの名無しさん (ワッチョイ 1379-JwVi)
23/10/28 11:11:57.05 Wr7RJXLy0.net
pythnから置き換える中でしばらくこの行が何をしてるのか意味不明だったのだが
avg = gray.copy().astype("float")
C#ではこういうことらしい
avg = gray.Clone();
avg.ConvertTo(avg, MatType.CV_32F);
この辺りいくらぐぐっても全く出てこないのでC#でOpenCV始めようとする俺みたいな馬鹿は参考にするように

474:デフォルトの名無しさん (ワッチョイ 1379-JwVi)
23/10/28 11:14:57.25 Wr7RJXLy0.net
どうやらOpenCVではMatがCOMで言うVARIANTみたいな全知全能型らしい
つまりCOMみたいな泥臭い動的型変換を割と頻繁にやらされるうんこライブラリみたいね

475:デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
23/10/28 11:32:14.34 5r3ES/EEM.net
OpenCVを語りたいならC++の方からアプローチして何を考えて作られたのか理解したほうがいい
pythonだと曖昧で魔法的に見えるだけ

Matも納得できるだろう
何が必要とされてそのようになったのか理解も進むと思う
そして二度と上のようなカキコはしなくなると思われる

476:デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
23/10/28 11:49:26.77 5r3ES/EEM.net
入門者にこんなことを言ってもい意味がないけど

高級言語でしか考えられなくなると
単純なメモリ構造やアセンブラレベルでの高速動作へのノウハウなどへの理解が低下する
何が要求されているかの思いが至らず狭い世界での物差しで全てを測ろうとしてしまう

それが絶対的に悪いと言うことではないがこれから世界を知ろうとするなら人間的に損だと思う

477:デフォルトの名無しさん (スップ Sd73-hjvO)
23/10/28 11:57:59.55 Q5mUhCaNd.net
またおじいちゃんのピンボケ説教が始まった

478:デフォルトの名無しさん (ワッチョイ 1bbc-H9h+)
23/10/28 12:01:21.10 sHjfoUv70.net
この視点は必要だと思うけれど。

479:デフォルトの名無しさん (スップ Sd73-hjvO)
23/10/28 12:08:36.36 Q5mUhCaNd.net
不要だとは言ってないよ?
ピンボケだと言ってるだけ

480:デフォルトの名無しさん (ワッチョイ 1379-JwVi)
23/10/28 12:23:05.53 Wr7RJXLy0.net
>>470-471
損得の観点が違うな
OpenCVでpython(以降うんこ)が使われてるのはOpenCV自体が十分速いからだな
でうんこ使ってるやつはOpenCVの中で何が起きてるかなんてどうでもいい
俺がC#でやり始めた理由はうんこを入れる必要が無くて孤立したうんこよりもWindowsではだいぶ楽できるなと踏んだからだ
まあ検証のために一時的にうんこ入れたけど慣れたらうんこなんて不要になると考えてる
ああ、C++には一切興味無いから本スレで存分に語りなよ

481:デフォルトの名無しさん (ワッチョイ eb10-yv/+)
23/10/28 12:50:06.14 Se05+6CE0.net
公式にサポートしてないC#を使って公式にサポートしてるpythonを落とすやつ…
URLリンク(www.klv.co.jp)

482:デフォルトの名無しさん (ワッチョイ 33bd-CP9B)
23/10/28 13:53:54.87 wwtVontY0.net
5年くらい前にOpenCVSharpを使ったけど、使いやすかったな。
WEBカメラの動画表示とキャプチャくらいしかしてないけど。

483:デフォルトの名無しさん (ワッチョイ 1379-JwVi)
23/10/28 14:15:21.84 Wr7RJXLy0.net
>>476
公式サポートがうんこみたいなラインナップなのは知ってる
そしてここはC#スレね

484:デフォルトの名無しさん (ワッチョイ eb10-yv/+)
23/10/28 14:17:52.54 Se05+6CE0.net
>>478
そしてここは初心者スレ

485:デフォルトの名無しさん (ワッチョイ 1379-JwVi)
23/10/28 14:25:16.30 Wr7RJXLy0.net
>>479
初心者ワードは荒れる元だから空気読んでわざわざ避けてた俺の気遣いを無駄にしたな
過去ログでも読んで反省してこい

486:デフォルトの名無しさん (ワッチョイ eb10-yv/+)
23/10/28 15:28:56.35 Se05+6CE0.net
>>480
なにこの俺ルール
気遣い(笑)
じゃあ最初からこのスレに来るな

487:デフォルトの名無しさん (ワッチョイ 13e5-H9h+)
23/10/28 16:41:40.98 9hkTJ9Z90.net
そう、C#スレかつ初心者スレ、OpenCVスレではない

488:デフォルトの名無しさん (アウアウエー Sa23-HPAJ)
23/10/28 17:13:29.55 VEuygnOSa.net
自治中うざ
opencv/pyathonならスレチだけど
opencv/c#なら別にいいだろ。opencvネタでスレ埋まる勢いならどっか行けって感じだけどさ

489:デフォルトの名無しさん (スプッッ Sd73-7IV3)
23/10/28 18:54:33.76 hqVJRLxwd.net
大好きなうんこワードがアレルゲン

490:デフォルトの名無しさん
23/10/28 19:31:43.92 R/03Lugt0.net
pyathon
ぴゃそん!

491:デフォルトの名無しさん
23/10/28 19:48:40.91 hfV6FxbxM.net
openCVの元になったSPIDERのver1はVAX FORTRANで実装されている。
そこまで戻る?😅

492:デフォルトの名無しさん
23/10/28 19:57:30.47 5r3ES/EEM.net
> OpenCVSharpを使い始めたんだが思いの他情報が少なくてつらいな
> chatGPTを叱り付けながらpythonのコードから変換してる
このあたりから加齢臭がするから初心者でも知ったような口を利くジジイなんだろうなw

493:デフォルトの名無しさん
23/10/28 20:26:07.01 cD9jg3Vs0.net
お爺ちゃんから加齢臭言われてて草

494:デフォルトの名無しさん
23/10/28 20:54:21.57 +siiqQCh0.net
今日はカレー食べて良いって聞いてきた

495:デフォルトの名無しさん
23/10/29 04:07:56.42 qLQkMhra0.net
ちょこっとExcelのファイル読むためにCloseXml入れたら
exeフォルダにアホみたいにdll置かれて吐きそうになった

496:デフォルトの名無しさん (ワッチョイ eb10-H9h+)
23/10/29 08:05:44.72 U4tz9u7X0.net
Excelのファイルとか、Zip解凍して中見ればよくね

497:デフォルトの名無しさん
23/10/30 01:37:09.90 2YMOstZ/0.net
>>478
うんこでも漏らしたのか?

498:デフォルトの名無しさん
23/10/30 19:54:00.78 sJLYeqSha.net
ナイトライダーみたいなプログレスバーってどうやって作るの?

499:デフォルトの名無しさん (ワッチョイ 8978-vgKx)
23/10/30 22:25:37.91 WdZXFUgO0.net
>>493
URLリンク(dobon.net)

500:デフォルトの名無しさん (ワッチョイ 13e5-H9h+)
23/10/31 08:36:18.12 uBGe6XWc0.net
もし往復させたい方なら、自分で描け

501:デフォルトの名無しさん (アウアウエー Sa23-c8RC)
23/10/31 09:11:22.59 A/eQJHdaa.net
できた

502:デフォルトの名無しさん
23/11/01 02:12:45.08 tzHICVYNd.net
こういうアニメーションに凝りだすと夢中になって本業を忘れる

503:デフォルトの名無しさん
23/11/01 08:02:21.06 c2Ch+IZA0.net
わたしも画像編集でPhotoShopに凝りだすと夢中になって本業を忘れる

504:デフォルトの名無しさん
23/11/01 08:17:23.82 uY4c0qsQ0.net
>>497
こだわって時間掛けた物ほどユーザから邪魔とかもっとスッキリさせてと言われるんだよねw

505:デフォルトの名無しさん
23/11/01 10:47:07.49 FsETBNtv0.net
あるあるww

506:デフォルトの名無しさん
23/11/01 10:54:49.35 WpcHr6kk0.net
注文内容の9割が見た目だからデザインに凝るのは悪いことではない
ただしデザインセンスとプログラミングの技量は別物、両方持ってる人はごくわずか
例えば警告にColors.RedやMessageBoxを使っちゃう人は絶望的に足りてないので、素直にコンポーネント屋から買ってきた方がいい

507:デフォルトの名無しさん
23/11/01 11:33:32.33 kzDrlSAv0.net
凝ってみるのはアルアルだろ
(パパッと仕上げてしまう人とか特に)
凝っても時間のムダだなとやってみてわかることもある

508:デフォルトの名無しさん
23/11/01 11:44:46.59 r0MV67Oa0.net
プログレスバーの話題って最近別のとこでも見た気がするな
長時間掛かる事が予測可能な処理で使う分には便利には違いないから
パーセンテージやタスク数で進捗視認できる手段は用意した方がいいだろうね
ナイトライダーは俺や客を怒らせるぐらいの効果しか期待できないから注意した方がいい

509:デフォルトの名無しさん (ワッチョイ 199f-CP9B)
23/11/01 12:36:46.89 eYGfI0F50.net
0%...1%...のまま長時間待たされていきなり99%になるやつか

510:デフォルトの名無しさん (ワッチョイ 215f-OpKz)
23/11/01 13:47:15.73 nOPPTWkh0.net
「デザイン」という言葉を「外観や視覚要素を指す表現」として用いるおじさん

511:デフォルトの名無しさん (ワッチョイ 19ae-zW/F)
23/11/01 14:13:09.44 KHH8FqfT0.net
「プログレスバーの進捗を正確にしてくれ」というオーダーは良く聞くな

512:デフォルトの名無しさん (ラクッペペ MM8b-8VXL)
23/11/01 14:49:14.25 w6vqB0t/M.net
言われなくてもやれよ

513:デフォルトの名無しさん (ワッチョイ 1379-JwVi)
23/11/01 14:56:29.53 r0MV67Oa0.net
俺が遊んでたソシャゲのアップデートはパーセンテージで小数点第二位まで出して糞でかいアップデートでもちびちび進んで判りやすかったから
多少速度を犠牲にしても1万ぐらいの解像度で進捗出てくれば良い感じに見えるんじゃねえかな

514:デフォルトの名無しさん
23/11/01 18:10:47.25 i3Lw7J6rd.net
仕事量を進捗にしつつ、時間を予測
じゃダメなのか

515:デフォルトの名無しさん
23/11/01 19:47:38.04 gNV0JjwF0.net
>>506
「一番遅く計測した値をちょっとかさ増しして、普通にすすめるか。時間足りなかったらフリーズしたことにして、再起動させることにしよ」

516:デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
23/11/01 21:04:31.75 e0PJZdQsM.net
MSの場合100%超えても続いてるのが頭にくる
100% = 終わってると思うんだけど

517:デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
23/11/01 21:11:50.04 e0PJZdQsM.net
話をもどそう
昔いくつか論文を読んだけど単純に活用できそうな例はあまりなかった

プログレスバーの進捗状況は時間とは限らないので
ファイル読み込みながら処理してる場合はファイルの読み込んだ位置で出してる(MSもこの方式なのかもなあ…)

データの内容で処理時間に偏りがある場合は時間と捉えてる人はイライラするんだろう
でも完全に予測不能だから仕方がない

518:デフォルトの名無しさん (スッップ Sd33-hjvO)
23/11/01 21:30:40.26 8Rtg2gaed.net
おじいちゃん論文とか言い出しちゃったよ

519:デフォルトの名無しさん (ワッチョイ 9b42-2DB6)
23/11/01 21:36:12.10 2ai15zcw0.net
こっちの本音はナイトライダーにしてスピード上げる方に力を入れたいだわな

520:デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
23/11/01 21:41:59.26 e0PJZdQsM.net
パターンがある場合はデータをもってヒューリスティックに%出すことも出来るけど
まあその場合も完全ではないので最終的にかなりずれてたら利用者も不満に思うわな

521:mdysdev ◆XSDsAilQpD0E (ワッチョイ 1bda-E3Tq)
23/11/01 21:55:26.88 9U3nJwO/0.net
「ヒュンヒュン」いうサウンドファイルまでつけて配布バイナリのサイズアップもしておきました。

522:デフォルトの名無しさん (ワッチョイ 13cb-OpKz)
23/11/01 22:08:52.60 az8MV/pf0.net
追跡モードボタンを用意した上で、それを押した時に流す動画も同梱しておこう
以後文句が出ることもなくなるはず

523:デフォルトの名無しさん
23/11/01 22:49:46.11 TVifX6FS0.net
ちょっと話ずれるけど、
画面からの登録処理を非同期にしてあるけどその間その画面で他に操作するような用途ない
とかありがち
頑張って進捗報告しても終わったその後は画面閉じるだけならあんまり意味ないよなぁ

524:デフォルトの名無しさん (ワッチョイ 33bd-CP9B)
23/11/01 23:44:12.35 64ol45tY0.net
待っている間にその画面でミニゲームができるようにしておけ。

525:デフォルトの名無しさん
23/11/02 01:02:40.00 WZq6ELi/0.net
登録処理程度なら進捗報告頑張らずにナイトライダーで動いてますよアピールしておけば事足りるだろう

526:デフォルトの名無しさん
23/11/02 09:32:02.01 kxWwWLf8a.net
>>511
ほんそれ

527:デフォルトの名無しさん
23/11/02 09:37:59.13 kxWwWLf8a.net
>>466
chatGPTは
OpenCVSharpで描かれたサンプルと
Pythonのcv2とかで描かれたサンプルと
C++で描かれたサンプルを
それぞれ区別出来ていると思うか?

528:デフォルトの名無しさん
23/11/02 09:41:16.63 kxWwWLf8a.net
>>468
avg.ConvertTo(avg, MatType.CV_32F); ← これは OpenCV の関数だが
gray.copy().astype("float") ← これは OpenCV ではなく numpy の機能を利用してるはずで高速でもある
もちろんデータの中身は相互に使える前提でやってる

529:デフォルトの名無しさん
23/11/02 09:42:35.77 kxWwWLf8a.net
>>469
COM は泥臭いけど cvMat はスマートだ

530:デフォルトの名無しさん
23/11/02 13:44:36.55 1Z+krstx0.net
c#でxamlの画面を作るときに
cs側の定数を埋め込みたい時ってどうしたらいいですか
例えば
static public class constdata{
public const string hoge_string="hoge.png";
}
と言う定数を作ったときに
xaml側で
<Image Source="hoge.png" />
のhoge.pngをconstdata.hoge_string にしたいとき
後ついでなのですが
定数にするときって
public const string hoge_string="hoge.png";
public static string hoge_string="hoge.png";
のどっちが正しいのでしょう

531:デフォルトの名無しさん (ワッチョイ eb10-H9h+)
23/11/02 16:54:53.47 bF76OlLL0.net
定数は上
下は定数じゃなくて静的変数
しかもreadonlyついてないから中身変わる

532:デフォルトの名無しさん (ワッチョイ 9b3e-ij9q)
23/11/02 17:28:53.15 qUNY/xJi0.net
staticプロパティは、そのクラスの名前空間をxmlns:hoge="..."で定義してるとして
<Image Source="{x:Static hoge:constdata.hoge_string}"/>
という風に参照できるが、フィールドとかconstとかはどうだったかな…。

533:デフォルトの名無しさん (ワッチョイ 13e5-H9h+)
23/11/02 18:35:57.66 O0TENg7J0.net
constも hoge:[クラス名].[const名] で参照できたはず

534:デフォルトの名無しさん
23/11/02 20:05:34.94 1Z+krstx0.net
>>526-528
ありがとうございます。
上手く行きました
"{x:Static hoge:constdata.hoge_string}"
こういう書式ってどこで勉強したらいいのでしょう

535:デフォルトの名無しさん (ワッチョイ eb10-H9h+)
23/11/02 21:05:57.33 bF76OlLL0.net
「xaml static」でググるだけでも↓とか見つかるよ

https://learn.microsoft.com/ja-jp/dotnet/desktop/xaml-services/xstatic-markup-extension
https://shuhelohelo.hatenablog.com/entry/2019/11/29/001200
https://www.nuits.jp/entry/xaml-static-binding

(すまんがスラッシュは半角に変換してくれ……)

536:デフォルトの名無しさん
23/11/03 14:30:46.23 rKkfliCa0.net
constはコンパイル時解決
readonlytついてても変数は実行時解決
xamlは知らんが、dllとか作ると問題になるときがある

537:デフォルトの名無しさん
23/11/03 14:30:58.24 rKkfliCa0.net
constはコンパイル時解決
readonlytついてても変数は実行時解決
xamlは知らんが、dllとか作ると問題になるときがある

538:デフォルトの名無しさん (ワッチョイ 5374-OMHE)
23/11/03 15:44:06.59 olK1WazS0.net
constはコンパイル時解決
readonlytついてても変数は実行時解決

xamlは知らんが、dllとか作ると問題になるときがある

539:デフォルトの名無しさん (ワッチョイ 5374-OMHE)
23/11/03 15:44:31.98 olK1WazS0.net
大事なことなので3回言いました。

540:デフォルトの名無しさん
23/11/04 16:36:18.05 zFKBPz8N0.net
排他制御のlock()の中って適当なobject型いれていいんですかね
この理屈がいまいち分かりません、おまじないみたいな認識でおkですか?

541:デフォルトの名無しさん (ワッチョイ c2e5-wdyj)
23/11/04 18:06:17.74 Piez7dab0.net
ダメ

542:デフォルトの名無しさん (ワッチョイ 62f5-UfbY)
23/11/04 18:37:44.75 h505bWOx0.net
プログラムにおまじないなんかねぇーよ

543:デフォルトの名無しさん (ワッチョイ 4279-ztC3)
23/11/04 19:11:44.76 W1fOq5zR0.net
何も判ってないみたいだしマルチスレッド入門サイト的な所か本を一通り読んだ方がいいよ
プラットフォーム毎に少しやり方が違うだけだからC#に限らない

544:デフォルトの名無しさん (オイコラミネオ MM49-wdyj)
23/11/04 19:31:09.98 RNqT3ZjLM.net
>>535
入り口で番号提示して入場しようとすると番号当り一人しか入れない仕組み
objectのアドレスが番号になってるぐらいに考えて…

545:デフォルトの名無しさん (ワッチョイ 0642-+qK8)
23/11/04 20:01:30.54 hziOgXuw0.net
おまじないはあるよ
絶対はいらないエラー検査ロジックを書いておくと
修正でミスってもバグらないことがある

546:デフォルトの名無しさん
23/11/04 21:05:19.08 h505bWOx0.net
そういうロジックにハイルだけ
ぉ前の知らんとこで入っでるだ

547:デフォルトの名無しさん
23/11/06 14:35:53.28 uDRsGne/0.net
何人だよお前w

548:デフォルトの名無しさん
23/11/07 14:28:59.04 yst4YU0a0.net
ListboxでCtrl+C押すとCから始まる要素に選択が移るの無効化する方法はありますか?
というかCtrl+任意のアルファベットでそれから始まる要素を順番で選択していくよくわからない仕様

549:デフォルトの名無しさん
23/11/07 15:25:13.30 Pq/Tl9vhd.net
PrviewKeyDownかな

550:デフォルトの名無しさん (スププ Sd62-VAE4)
23/11/07 16:53:35.09 XhD41j9dd.net
マルチやめろ

551:デフォルトの名無しさん
23/11/07 21:29:35.15 yst4YU0a0.net
ごめんなさい初心者スレで聞けみたいなのが合ったのでこっちにも質問しました
解決したんですけどもう一つ疑問があってビルドしたときに〇〇.exe.configってファイルができるんですけどこれに個人情報などは含まれたりしないですかね。
publicKeyTokenとか書いてあるんですけど他人に見られても問題ないようなものですか?

552:デフォルトの名無しさん (ワッチョイ 6d09-fzVy)
23/11/08 12:51:28.99 4rFdbjcs0.net
>>546
脳みその量が足りない人はプログラミングとかしない方が良いと思うよ

553:デフォルトの名無しさん
23/11/08 21:55:40.45 wPZy88vc0.net
lockについての質問したやつです
おまじないでないことは漸く理解できました
次なんですが
lockによって排他制御されるものは変数だけですか?
ファイルへのアクセスも排他制御したいです
例えばスレッド2つ走らせてA.txtを同時に読み込もうとしたときに
どっちかのスレッドがリジェクトされたら成功ってな感じにしたいです
どうやって状況つくります?

554:デフォルトの名無しさん
23/11/08 22:08:02.38 /gqdz8KH0.net
ファイル排他はlookでは無理だねぇ

555:デフォルトの名無しさん
23/11/08 22:11:21.15 5o5qiXKK0.net
ほれ
using System;
using System.IO;
using System.Threading;
class Program {
static void ReadFile(string filename) {
int threadId = Thread.CurrentThread.ManagedThreadId;
Console.WriteLine($"Thread {threadId} is reading {filename}");
lock (filename) {
using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read)) {
using (StreamReader reader = new StreamReader(fs)) {
string data = reader.ReadToEnd();
Console.WriteLine($"Thread {threadId} read: {data}");
}
}
}
}
static void Main() {
string filename = "A.txt";
Thread thread1 = new Thread(() => ReadFile(filename));
Thread thread2 = new Thread(() => ReadFile(filename));
thread1.Start();
thread2.Start();
thread1.Join();
thread2.Join();
}
}

556:デフォルトの名無しさん
23/11/08 22:44:34.72 wPZy88vc0.net
>>550
うんん?どこに仕掛けがあるの

557:デフォルトの名無しさん
23/11/08 22:57:10.85 5o5qiXKK0.net
知らん眠い
後は自分で直して遊んでね

558:デフォルトの名無しさん (スップ Sd62-uaP8)
23/11/09 00:12:36.42 +ZNjn+w4d.net
聞く方も答える方も馬鹿
ファイルはそもそも排他機能があるだろ

559:デフォルトの名無しさん
23/11/09 08:04:59.33 oWEPbbig0.net
おまじないでは無いことが理解できたとしても、結局lockがどういう機能かは全然理解してない感じやな
ファイルアクセスを排他制御したいなら↓使っとけ
FileShare.None指定すれば完全排他だ
File.Open(string path, FileMode mode, FileAccess access FileShare share)
File.Openをnew FileStreamにしても一緒

560:デフォルトの名無しさん
23/11/09 11:48:42.57 Fo7n9qIpa.net
reject されたら失敗やん?

561:デフォルトの名無しさん
23/11/09 12:00:00.13 Qu68QkTK0.net
1つのプログラムの複数スレッドで同時に1つのファイルを読み込もうとしてる理由や状況によってどういうアーキテクチャがいいかは変わる

562:デフォルトの名無しさん
23/11/09 12:54:41.26 oWEPbbig0.net
そもそも「1つのプログラムの複数スレッドで同時に1つのファイルを読み込もうとしてる」かどうかわからんのだが

563:デフォルトの名無しさん
23/11/09 12:55:39.07 oWEPbbig0.net
例�


564:ヲばじゃなくて実際どう作ってるのか言ってくれないとなぁ



565:デフォルトの名無しさん
23/11/09 14:28:35.71 Qu68QkTK0.net
> 例えばスレッド2つ走らせてA.txtを同時に読み込もうとしたときに
額面通りに受け取れば「1つのプログラムの複数スレッドで同時に1つのファイルを読み込もうとしてる」
まあ本当に解決したい問題と書いてる内容が合ってるとは限らないけどね

566:デフォルトの名無しさん (ワッチョイ 6df0-q0f1)
23/11/09 14:43:43.38 b1R9Hs+L0.net
ファイル読む分には同時だろうが関係ないよな?
ライブラリがリエントラントになってればだけどw

567:デフォルトの名無しさん
23/11/09 16:45:55.75 R7Sf/2Of0.net
ファイルの内容を1度しか処理したくない
みたいな別の理由があるんじゃね?

568:デフォルトの名無しさん (ワッチョイ d2bd-/9BA)
23/11/09 18:51:49.12 3GBMooqu0.net
希望の通りに実装したら、同時に読み込もうとしたら後の方は先の読込み結果を返すになる。甘々に希望を読めば。
だけれども、同時でなくて後からもう一回呼んだ場合にはもう一度ファイルを読み込むんだよな。
>>561の通りに一度しか読み込みたくないのかもしれず、後から呼んだ場合には前の結果を
残しておいてそれを使うのがいいケースもあるが、それだとメモリを食い続けるという問題も
あるので、何をしたいか次第だ。

569:デフォルトの名無しさん (ワッチョイ 2e10-wdyj)
23/11/09 18:54:11.91 dtnjnmBG0.net
同一プロセス別スレッドで同一ファイルへのアクセスを排他制御したいなら
lockブロックの中にファイル処理入れるしかないんじゃね?

570:デフォルトの名無しさん (ワッチョイ 2e10-wdyj)
23/11/09 18:55:43.66 dtnjnmBG0.net
>>550に対して>>551みたいな反応するようじゃ、危なすぎてまだ早いって言いたくなるけど

571:デフォルトの名無しさん (ワッチョイ 62f5-UfbY)
23/11/09 18:57:46.82 Mwi0lSOi0.net
まあ普通はファイル自体はロックしないで
レコードロックじゃね

572:デフォルトの名無しさん (オイコラミネオ MM49-wdyj)
23/11/09 19:01:49.30 RZ9WOZDMM.net
550は全く実用的ではないけどまあそのうち気が付くんだろうな・・・

573:デフォルトの名無しさん (ワッチョイ 4d42-+qK8)
23/11/09 19:29:43.00 yc1G0XhC0.net
俺ならファイルを読み込むスレッドを一つにして、ひたすらqueueなどに積んで
処理用のたくさんのスレッドでそれを個別に読み込み処理なんて考えるな
ファイル読み込み部分を並列処理してもトラブルが出るだけでろくなことにならない

574:デフォルトの名無しさん (オイコラミネオ MM49-wdyj)
23/11/09 19:34:43.74 RZ9WOZDMM.net
一応書いておくけど~
文字列でlockするのは全くおすすめできない
なぜならデッドロックの恐れがあるから

それとパスを使うなんて論外だな

575:デフォルトの名無しさん (ワッチョイ 4279-ztC3)
23/11/09 20:53:01.49 qzya0pVE0.net
一体いつから正解が貼られると錯覚していた?と続けようとしたら眠くなっただけだからね
あー釣れた釣れた

576:デフォルトの名無しさん (ワッチョイ 62f5-UfbY)
23/11/09 20:57:33.11 Mwi0lSOi0.net
そりゃそーだ
優しくレスするスレやもん

577:デフォルトの名無しさん (ワッチョイ 4601-4YU8)
23/11/09 21:25:44.13 Guim9pgh0.net
>>569
言い訳乙

578:548 (ワッチョイ ffda-XI6K)
23/11/11 09:48:46.02 MfZ2/qTS0.net
やりたいのは
計算結果をテキストに書くってのがやりたいです。

A,Bスレッドがそれぞれ計算します。

KeisanKekka.txt
↓↓
KeisanKEKKAA
KeisanKeKKAB

順番が逆になるってのはダメです。なのでファイル排他必要です。

579:デフォルトの名無しさん (ワッチョイ 7f3f-vmna)
23/11/11 09:55:37.59 7zFGiPDR0.net
>>572
何の順番?

580:デフォルトの名無しさん (ワッチョイ ffda-XI6K)
23/11/11 09:56:22.71 MfZ2/qTS0.net
>>573
書き込み順番

これはダメ

KeisanKeKKAB
KeisanKEKKAA

581:デフォルトの名無しさん (ブーイモ MMd3-3/qp)
23/11/11 10:17:38.60 6SW4sVwrM.net
XY問題の匂いが漂う

582:デフォルトの名無しさん
23/11/11 10:43:59.03 B6ZfAYMe0.net
>>572
>>574
正確に説明をする能力を身に着けなさい
・「テキストに書く」とはどこに書くのか。
・書き込み順番が末尾B、末尾Aではダメなのは何故なのか。

583:デフォルトの名無しさん
23/11/11 10:49:32.88 RSKqgUUO0.net
順番ってスレッドが開始した早い方が先に書き込むのか?
それともどちらもが出した計算結果の昇順に書き込むのか?
もし後者なら書込みプロセスは1つにするだけ
前者なら計算終わるの待つだけ

584:デフォルトの名無しさん
23/11/11 11:21:39.38 vbI3i7Vz0.net
・ファイルの書き込み自体は並列化出来ない
・計算に比べてファイル書き込みが圧倒的に遅い
・ファイルの排他処理自体も少しではあるが時間がかかる
ってことなので、素直にシングルスレッドで処理した方がいい
どうしても並行処理をやってみたいのなら、ファイル書き込みと計算の2つのスレッドで並行処理をしてみるべきかな
そうするとファイルI/O街のタイミングで計算できるから物凄く微妙に速度が上がるかもしれない

585:デフォルトの名無しさん
23/11/11 11:27:11.95 RSKqgUUO0.net
てか計算結果でソートするなら
処理分けてオペレーションで対応すりゃよくね?
無理やりプログラムでやるもんでもないでしょ
プログラムはなるべくシンプルがいいよ

586:デフォルトの名無しさん
23/11/11 11:27:33.55 MfZ2/qTS0.net
>>576
テキストファイルの終わりに書きます。
追加するイメージです。

587:デフォルトの名無しさん
23/11/11 11:53:52.65 wxiCP7Qj0.net
>>580
排他制御だと先着順にしかならないけど
スレッドがA,Bの順番で計算が終わってファイルに書こうとする保証はあるの
それが保証されるなら、ファイルの排他機能を使うより、lockを使うのがシンプルで良いと思う

588:デフォルトの名無しさん (ワッチョイ ffda-XI6K)
23/11/11 12:18:07.23 MfZ2/qTS0.net
>>581
Aが書き終わったことが見てわかる変数を作っておくことで対応します。

589:デフォルトの名無しさん (ワッチョイ ff01-vmna)
23/11/11 12:48:18.44 9HxScUhQ0.net
これはもう手に負えないわ
諸君の健闘を祈る

590:デフォルトの名無しさん (ワッチョイ 7f79-l6lv)
23/11/11 12:56:28.59 JXC3KAMY0.net
そもそも同一ファイルを複数スレッドで読み書きするのは公立が良くない
私立にしなさい

591:デフォルトの名無しさん (ワッチョイ ffda-XI6K)
23/11/11 13:07:33.16 MfZ2/qTS0.net
伝え方が悪くてどうもすいませんでした
冷静に考えたら変数使えば排他制御いらないじゃんって思えてきた
何を聴講してんだか

592:デフォルトの名無しさん (ワッチョイ ffcf-Zoup)
23/11/11 13:44:16.19 LlCaH/Ey0.net
排他制御順序制御をスレッドAB間で直接行えばいい話でファイルアクセスどうこうは関係ないってことだろう

593:デフォルトの名無しさん (オイコラミネオ MM13-Zoup)
23/11/11 13:51:34.21 uCuKaL40M.net
スレが伸びてると思ったら

複数スレッドで変数…
フラグが立った気もする

大学に聴講生いたな
おばちゃんだったけど新しいことを学ぼうとする姿勢が偉い

594:デフォルトの名無しさん (スップ Sd1f-Zoup)
23/11/11 14:02:50.08 rffcSM1cd.net
スレッド起こした順に書込みも順にしたいの?
起こしたときに番号振ってファイルAにみな書込みするようにして
書き込む結果は振り番と結果書き込ませて
そのファイルAを監視して順番に書き出すスレッドなりで
目的のファイル作れば?

595:デフォルトの名無しさん
23/11/11 15:16:06.79 RSKqgUUO0.net
聴講って何かの誤変換かと思ってたけど
聴講生だったのか
道理で

596:デフォルトの名無しさん (ワッチョイ ffda-XI6K)
23/11/11 16:05:06.98 MfZ2/qTS0.net
>>588
順番はAが書き込んでBが書き込む
Bが早く終わろうがAが書き込みした後しか書き込み無理ってことです。
もうひとつの厄介ありました。
Aが書き込み終わったよっていうフラグを立てる時間
Aが書き込んだ時間
にタイムラグある場合どうしよう。
もちろんAが書き込みする関数呼んだあとにフラグ立てるんだけど
フラグ立てたときってほんとに書き込み終了してる?って話です。

597:デフォルトの名無しさん (スプッッ Sd1f-4LBs)
23/11/11 16:24:57.12 CPZqzXvFd.net
もういい、消えろ

598:デフォルトの名無しさん (ワッチョイ ff7b-gzdM)
23/11/11 16:42:12.75 oxGqzPfa0.net
今後の質問者には先にChatGPTである程度やり取りしてもらって
それでもわかんなかった所だけ聞きに来てもらうほうが
お互い幸せになれる気がする

599:デフォルトの名無しさん (ワッチョイ ffbc-Zoup)
23/11/11 16:57:49.93 NvFe8ImE0.net
それ以前に、もう少し、こう、コミュニケーションというものを考えて、せめて一度くらいは推敲してから書き込んでもらえるとお互いに幸せかもね。

要件としてはこんなところなんだろうか。
・何らかの処理を行うためにスレッドを起動する。
・その処理(スレッド)は複数ある可能性がある。
・その処理の結果を一定の規則でファイルに出力する。

自分だったら、メインスレッド(処理用のスレッドを立ち上げる側)に処理スレッドの結果を返すようにして、処理スレッドがすべて終わった後にメインスレッドで規則に従ったファイル出力を行うように作るけど。

600:デフォルトの名無しさん (ワッチョイ 7fbd-XI6K)
23/11/11 17:08:03.68 B6ZfAYMe0.net
Win32APIで非同期書き込み

・CreateFile() FILE_SHARE_WRITE FILE_FLAG_OVERLAPPED
・AのWriteFile() OVERLAPPED構造体のOffsetとOffsetHighに指定する書き込み開始位置に、
 現在のファイルサイズを指定(後述するが0xFFFFFFFFでの追記は避けること)
・BのWriteFile() OVERLAPPED構造体のOffsetとOffsetHighにBで渡したファイルサイズ+Aで書き込むサイズ

WriteFile()は指定サイズ全てを1回で書き込めるとは限らないので、書き込んだサイズ分
OffsetとOffsetHighをずらしながら残りをWriteFile()する。
位置をずらして指定していくのとBの分を並列で書き込むので0xFFFFFFFFでの追記を行ってはならない。

書き込んだサイズは
・GetOverlappedResult()で調べる(呼ぶタイミングが分からない)
・WriteFileEx()でlpCompletionRoutineを指定する(完了ルーチンでWriteFileEx()を繰り返すとスタックが溢れる恐れあり)
・IOCP
・スレッドプールI/O
のいずれかを使う。

C#で同等のことを行う方法は知らん。

601:デフォルトの名無しさん (ワッチョイ 7fbd-XI6K)
23/11/11 17:09:02.17 B6ZfAYMe0.net
訂正:Bで渡したファイルサイズ→Aで渡したファイルサイズ

602:デフォルトの名無しさん (ワッチョイ ff02-FvvN)
23/11/11 17:11:14.77 6Uwmj7p80.net
古典的な方法は

書き込む前に「書き込み中だよ」というファイルを作って
おもむろに書き込んで終わったらファイルを消去する
他のプロセスは「書き込み中だよ」ファイルがないことを
確認してから「書き込み中だよ」ファイルを作る

あるいはDBに任せるかな

603:デフォルトの名無しさん (ワッチョイ 7ff5-1DlE)
23/11/11 17:14:49.80 RSKqgUUO0.net
書き込む前に配列作るだけな気もするけど

まぁ書き込みたいならしゃーない

604:デフォルトの名無しさん (ワッチョイ ff01-bJ+2)
23/11/11 17:24:04.61 G8HZ7IiV0.net
>>590
static async Task Main(string[] args)
{
var taskA = Task.Run(()=> CalcA());
var taskB = Task.Run(()=> CalcB());
var resultA = await taskA;
await Save(resultA);
var resultB = await taskB;
await Save(resultB);
}

これを一般化してtaskをListに追加していって
Listを回して計算結果をawaitしながら直列で書き込めばいい

605:デフォルトの名無しさん
23/11/11 18:15:19.76 GzLBx05/d.net
馬鹿は馬鹿だから設計も実装もできない
馬鹿の考え休むに似たりとはこのこと
こんな馬鹿はシングルスレッドにしとけよ

606:デフォルトの名無しさん
23/11/11 18:17:22.37 MfZ2/qTS0.net
>>596
>>おもむろに書き込んで終わったらファイルを消去する
書き込んで終わったことをどうやって判断するんですか?

607:デフォルトの名無しさん
23/11/11 18:29:22.82 6Uwmj7p80.net
>>600
駆動したプログラムが自分で消去する
パスワードファイルの編集とかそうやっている

608:デフォルトの名無しさん
23/11/11 18:46:23.39 wxiCP7Qj0.net
>>596
マルチスレッド向きの方法じゃない
動くけど面倒なだけ

609:デフォルトの名無しさん
23/11/11 18:58:24.74 JXC3KAMY0.net
>>596
その手順ではアトミック性が損なわれるから正常に機能しない
プロセスが最初にやるべきは盲目的に「書き込み中だよ」ファイルを作ろうとする事
ファイルを所有できたかはファイルの作成の成否で判定する…つまりこんな馬鹿なことは今すぐ辞めるべき

610:デフォルトの名無しさん
23/11/11 19:32:29.94 QEeEkTCo0.net
それぞれのスレッドが各々でファイルを書かなきゃいけない理由がなんかあるんかな?
そうじゃないならそれぞれの計算結果を親スレッドが受け取って
親スレッドがまとめて書き込めばいいんじゃないかなぁ

611:デフォルトの名無しさん
23/11/11 19:33:39.57 2HJkyP1va.net
ファイルはだめだけど
ディレクトリ作成はok

612:デフォルトの名無しさん
23/11/11 19:44:09.90 kflznpjK0.net
>>604
俺ならこれ
場合によってはスレッドの意味が薄くなるけど、設計としては明白になりやすそう
もしくは各スレッドの結果?の書込処理について統合して管理するクラスを作る
順序を定義しといてキューに溜めとく感じ

613:デフォルトの名無しさん
23/11/11 19:55:09.06 6Uwmj7p80.net
linuxのパスワード書き換えプログラム vipw
がファイルを生成して排他制御をしているのだが
問題があったという話を聞いたことがないけど

614:デフォルトの名無しさん
23/11/11 20:07:11.14 mqML6fZGd.net
Aが書きこまないとBが書き込めない?
Aが新規ファイルに書き込んで
Bがそれ見つけてから書き込むようにしろ

615:デフォルトの名無しさん (ワッチョイ 7f94-gzdM)
23/11/11 20:35:27.62 wxiCP7Qj0.net
>>607
ロックファイルを用いた排他制御の手法をちょっと間違えて覚えてるな
> 「書き込み中だよ」ファイルがないことを確認してから
って部分が無意味
確認後にファイルを生成するまでの間に他のプロセスがファイルを生成するかもしれない

616:デフォルトの名無しさん (ワッチョイ 9f04-RgHV)
23/11/11 20:58:58.22 piBb8Nie0.net
>>604
おれもそうするわ

617:デフォルトの名無しさん (ワッチョイ 7f31-vmna)
23/11/11 21:32:07.49 bCDMs/TZ0.net
>親スレッドがまとめて書き込めばいいんじゃないかなぁ
“まとめて”の意味合いにもよるけどAの書き込み処理はBの計算結果を待たずに開始できる点に留意する必要がある

618:デフォルトの名無しさん
23/11/11 21:55:20.34 QEeEkTCo0.net
>>611
待たずに開始できるであって待たずに開始しなければいけないではないし
A・Bそれぞれの完了を待ってはいけない理由でもあるんか?

619:デフォルトの名無しさん
23/11/11 21:56:20.93 QEeEkTCo0.net
あと、待ってるのはあくまで親であって、AとBの計算はパラで進めてくれて一向にかまわん
話の内容からして、Aの結果をもとにBが計算するわけでも無いだろうし

620:デフォルトの名無しさん
23/11/11 23:26:02.16 T+Kc9o9H0.net
こういう複雑さを考えるとRDBってよく出来てるなあ

621:デフォルトの名無しさん (スプープ Sd9f-Zoup)
23/11/11 23:42:10.88 hf5ytgdCd.net
AとBを同列に考えるからだめなんだ
Aが終わらないとBが結局終われないのだったら
BがAの親になればいいんだw

622:デフォルトの名無しさん (ワッチョイ 7fcb-MsHe)
23/11/12 00:18:55.26 IOHJkfoT0.net
>>572がいち早く嗅ぎつけたように、質問者は真の目的に対して無自覚に不適切な実現手段を選定している(それ故に、不適切な実現手段における実装上の課題、つまり二次的な課題を相談するハメなってる)
C#での実装手続きを検討する前段に立ち戻ることをオススメする

623:デフォルトの名無しさん
23/11/12 06:54:13.24 QHBv8+9D0.net
嗅ぎつけたて、>>572は質問者だぞ

624:デフォルトの名無しさん
23/11/12 08:46:46.16 KfSfv59+0.net
TikTok LiteでPayPayやAmazonギフトなどに変換可能な4000円分のポイントをプレゼント中!
※既存TikTokユーザーの方はTikTokアプリからログアウトしてアンインストールすればできる可能性があります
1.SIMの入ったスマホ・タブレットを用意する
2.以下のTikTok Litのサイトからアプリをダウンロード(ダウンロードだけでまだ起動しない)
URLリンク(lite.tiktok.com)
3.ダウンロード完了後、もう一度上記アドレスのリンクからアプリを起動
4.アプリ内でTikTok未使用の電話番号かメールアドレスを使用して登禄
5.10日間連続のチェックインで合計で4000円分のポイントゲット
ポイントはPayPayやAmazonギフト券に変換可能!
家族・友人に紹介したり通常タスクをこなせば更にポイントを追加でゲットできます。

625:デフォルトの名無しさん
23/11/12 08:50:55.63 IOHJkfoT0.net
>>617
アンカ間違えた。正しくは >>575

626:デフォルトの名無しさん
23/11/12 09:30:41.24 qtbaU10h0.net
一番の問題は、処理時間の大半を占めるだろうファイルの書き込み自体が並立処理ができないし
オープン、書き込み、クローズ等の回数が増大して処理時間が遅くなることだな
もちろんスレッドの切り替えや排他制御や順序の制御など色々仕事が増えるし、この部分も並列処理できない
マルチスレッドの練習ならいいけど、実用ソフトの作成ならシングルスレッドで書いたほうが遥かに早いものができる

627:デフォルトの名無しさん
23/11/12 10:50:45.23 0qXKJ0sK0.net
もう完全にスレチになんだけど。
>>620 みたいな決めつけってどうなんだろう。
素人がわざわざスレッドなんて言い出してるんだから、質問者が説明できていないだけでスレッドが必要な背景があるのかもしれない、と考えてあげてもよさそう。
自分も質問スレ等を利用したことがあるけど、意図して説明を省略したところの説明を強要されたり決めつけられたりすると、う~んと思うこともあったからね。
まあきちんと説明できない側が悪いのだけど。
言い訳的には誰にでもきちんと理解させられるほど状況を整理できてるなら、質問スレに頼る必要はほぼないかもしれない、とか。

628:デフォルトの名無しさん
23/11/12 11:01:35.90 EoAEw2XZ0.net
別にいいけど、しっかりと要点を説明できなきゃ、的外れな助言をされても文句は言えないからねぇ

629:デフォルトの名無しさん
23/11/12 11:04:51.41 FeTL5mFV0.net
>>618
鬼コスパだな

630:デフォルトの名無しさん
23/11/12 11:17:52.90 1lLdbIkC0.net
そもそもでいうなら、順番を待たなきゃいけない設計を見直さんとね
決まった順番で同じファイルに書き込まなきゃ理由がわからんからね
中のファイルが構造的でなきゃいけない場合、単純に順番に書込むだけでそれが担保出来てるのか、とか
例えばよくあるデータ形式にしても、
CSVならあまり順番意識しないから追記ってのもあるだろうけど、jsonで追記とかまあ自分は聞かないし
目の前の要求が満たせていればいい、っていうのも分からなくはないが
そこら辺の前提がないと最善などわからんよね

631:デフォルトの名無しさん
23/11/12 11:22:02.03 EoAEw2XZ0.net
>>623
氏ね自演

632:594
23/11/12 11:24:38.62 O1mU2H+U0.net
>>620
>>594に書いたけど、ファイル書き込みの並列処理は可能だ。
面倒な上に書き込みサイズが小さいとすぐ終わるから並列処理するうまみがないが。
実用性を考えると根本的にやることを見直すべきなのは同意だ。

633:デフォルトの名無しさん
23/11/12 11:47:28.89 P9Q12+Ee0.net
>>618
ポイントを秒でゲットするのか

634:デフォルトの名無しさん
23/11/12 12:02:09.85 qtbaU10h0.net
>>626
別スレッドで細切れに書き込みするのはできるけど
複数スレッドで並列で同時にファイルに書いたら壊れるでしょ

635:デフォルトの名無しさん
23/11/12 12:11:57.36 QHBv8+9D0.net
同期処理しなきゃいけないのを並列は無理では

636:デフォルトの名無しさん
23/11/12 12:21:50.53 0qXKJ0sK0.net
>>622
まあそうだね。
回答者の側にも自分の答えられる範囲に無理矢理誘導しようとしてる節があるのも気になるけど。

637:デフォルトの名無しさん
23/11/12 12:50:38.93 kSd1xzHw0.net
決まった順番で同じファイルに書き込みたい状況やファイル書き込みより計算処理の方が遥かに時間がかかる状況なんていくらでもあるでしょ
処理速度向上のために並列化した計算結果を直列化するのはmap/reduceと同じで並列処理の基本パターンだと思うが
その際にメモリ効率や後続処理の都合でファイルに書き出しながらreduce相当の集約処理をするのもよくあるやり方

638:デフォルトの名無しさん
23/11/12 12:57:53.27 eSav3yyhM.net
ついでに言うと真の目的を自覚してそれを他人に誤解なく伝えられるように言語化できる人間ってのはそうそういない
自分の言いたいことを相手に伝えようとする努力はもう少ししろよとは思うが真の目的を言語化すること初心者に求めるのは酷

639:デフォルトの名無しさん
23/11/12 12:57:57.10 92tzwC/W0.net
>>598で(細かい所は端折られてるが)質問者の要望を満たしたほぼ完璧な回答が出てるのに何の議論をしてるんだろうか
>>620
マルチスレッド何だから、オープンしたファイルクラスオブジェクトを共有すれば良いだけ
各スレッドでファイルのオープンとクローズをやる必要は無い

640:デフォルトの名無しさん
23/11/12 13:02:14.64 O1mU2H+U0.net
>>628
壊れないよ。
追記でなく他のスレッドが書き込むサイズを把握して書き込み開始位置(現在のファイルサイズよりも先)
をちゃんと指定すれば大丈夫。
FILE_SHARE_WRITE指定だから複数スレッド同時に書き込めるし、
なんなら複数プロセスでも書き込める。

641:デフォルトの名無しさん
23/11/12 14:27:16.22 0qXKJ0sK0.net
>>632
初心者というか熟練者でもというか、それを不足なく出来ている人はあんまりいないような。
少なくともここで議論()してる連中は全滅だね。

642:デフォルトの名無しさん
23/11/12 15:28:30.84 qtbaU10h0.net
>>634
資源を複数のTHREADでShareしているだけで並列処理とは違うよね
同時に書けるのは一つのポイントだけだからCPUが増えても速度が2倍4倍とかにならない

643:デフォルトの名無しさん
23/11/12 16:27:53.40 O1mU2H+U0.net
>>636
並列処理だよ。
ファイルポインタの場所に対して書き込んでるのではなく、
OVERLAPPED構造体で指定した位置からそれぞれのスレッドが非同期で同時に書き込む。

644:デフォルトの名無しさん
23/11/12 17:03:04.73 EoAEw2XZ0.net
.NETのソース隅から隅までは読んでないけど、FileStreamの内部でoverlapped構造体使用してたような記憶

645:デフォルトの名無しさん (ワッチョイ 1ff8-Qkct)
23/11/12 19:11:35.86 iHK6/ooK0.net
その認識で合ってるよ
.NET4以降ならメモリマップドファイル使えるからそちらで共有するけど

646:デフォルトの名無しさん (ワッチョイ 7f79-l6lv)
23/11/13 00:49:40.70 AJp6/mRY0.net
ファイルはシーケンシャルで書くのが一番効率が良い
順番に並べる必要があるなら後でソートできるようにレコードをきちんと設計しておけば問題は起こらない
上でされてるいくつあるかも判らないスレッドごとに開始位置をシークして…なんて主張は馬鹿の発想

647:デフォルトの名無しさん
23/11/13 06:47:10.31 7hRFN4TL0.net
ちゃんと設計しないと逆にパフォーマンス落ちるぞって、当のMSがWriteFileのドキュメントで言ってるからね

648:デフォルトの名無しさん
23/11/13 07:44:08.86 7oSmY/Hz0.net
妄想だけど、HDD、SSDよりも異次元レベルで速いストレージの時代になったら
それも変わってくるんかなとか思ったり
十年とかでそうなることはないやろけど

649:デフォルトの名無しさん
23/11/13 07:55:21.10 flxB0Vsk0.net
確かにハードの進化がソフトを凌駕するからなぁ
windowsも出た頃は二世代後くらいのハードを想定して作ったとか後付で言ってたかな、遅くて使い物にならなかったよな最初の頃は(笑)

650:デフォルトの名無しさん
23/11/13 08:20:50.07 Rx9sePM0M.net
タイル時代のは記事で読んだぐらいやな

651:デフォルトの名無しさん
23/11/13 08:36:15.51 PVSRWaiLM.net
Windows1.0は日本未発売

652:デフォルトの名無しさん
23/11/13 08:43:08.32 gHMVnHfM0.net
ストレージアクセスはずっとボトルネックだから

653:デフォルトの名無しさん
23/11/13 09:12:26.25 jo7KeTmv0.net
>>645
URLリンク(funkygoods.com)
98版出ているし、触ったことあるわ

654:デフォルトの名無しさん (ワッチョイ 1f01-AVwT)
23/11/13 19:08:34.41 +fGKUdks0.net
>>647
3.0からだな
95β見た(入れた)瞬間は窓から投げ捨ててやろうかと思ったわ
巷の公式販売では祭りだったし買ったけどw

655:デフォルトの名無しさん (ワッチョイ ff10-Zoup)
23/11/14 07:15:31.76 LV/qT8Ke0.net
まともに触ったWindowsは95からだなぁ
伯父さんの家に3.1あったけど、ちょっとゲーム触らせてもらった程度だし

656:デフォルトの名無しさん (ワッチョイ 1fad-VGCZ)
23/11/14 07:31:15.46 Uvtmi6Yw0.net
OS2がまだ生きていた頃だな

657:デフォルトの名無しさん (ワッチョイ 9f7c-gFzT)
23/11/14 19:07:18.84 xujXPfzz0.net
新しい.net来るぞ

658:デフォルトの名無しさん
23/11/15 00:40:01.81 LrsG+7gI0.net
3日くらいぶっ続けでカンファレンスやってるみたいだけど英語わからんからやめとこ…

659:デフォルトの名無しさん
23/11/15 09:04:48.81 4gx9dXmF0.net
.NET 4.8.2が来るの!?

660:デフォルトの名無しさん (ワッチョイ 7fe5-Zoup)
23/11/15 09:53:23.29 bUMQZh1h0.net
4.8.1は.NET Frameworkであって.NETじゃないが

661:デフォルトの名無しさん (ワッチョイ 9f49-IE43)
23/11/15 10:00:02.34 cCd4X74c0.net
そろそろ.NETの頭のドット消して欲しい
色々紛らわしかったりめんどい

662:デフォルトの名無しさん (ワッチョイ 9f33-KpL6)
23/11/15 10:16:57.55 oY0624hB0.net
頭のドットもだが、もうちょっと固有な名前を付けてほしいよな
検索時のS/N比が…

663:デフォルトの名無しさん (ワッチョイ 1fcb-xj5q)
23/11/15 11:25:14.79 cN4uQIA10.net
dot NET

664:デフォルトの名無しさん (ワッチョイ 9f7c-gFzT)
23/11/15 11:41:16.01 S5z+rJ9T0.net
>>652
英語分からんってヤバくね
IT業界で1番必要なスキルだと思うが?

665:デフォルトの名無しさん (ワッチョイ 9fae-Lcu7)
23/11/15 11:46:04.08 4gx9dXmF0.net
SilverLight<よっしゃ
XNA<固有な名前なら任せろ

666:デフォルトの名無しさん (ワッチョイ 7f74-n7Dx)
23/11/15 12:41:13.13 D0hDoGTF0.net
>>658
Don't worry.
My English skills are much better than yours.

667:デフォルトの名無しさん (ワッチョイ 9f49-Lcu7)
23/11/15 13:16:29.77 cCd4X74c0.net
Waimo eigo tyoto Dekiruyo !!

668:デフォルトの名無しさん (ワッチョイ 7fe5-Zoup)
23/11/15 13:18:03.10 bUMQZh1h0.net
Makotoni I'm Sorry

669:デフォルトの名無しさん (ワッチョイ 7f4b-4qIk)
23/11/15 13:39:33.53 GITsN6v60.net
Windowsで.net5以上でshift-jis使うのに
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
この1行いるのは知ってます

System.Text.Encoding.CodePagesを参照する必要があると書いてあるところと
いらないしいると書いてあるのは間違いだと書いてあるところがあったので
どちらが正しいのでしょうか?

670:デフォルトの名無しさん (ワッチョイ ffcb-KpL6)
23/11/15 13:55:26.89 IR5/gHhj0.net
.NET Core 3.0か3.1あたりで本体に入ったから今はもういらない

671:デフォルトの名無しさん (ワッチョイ 7f74-n7Dx)
23/11/15 14:05:48.88 D0hDoGTF0.net
>>662
Kono Hage!!

If you have no hair at all, shut up and get out of here.

672:デフォルトの名無しさん
23/11/15 14:08:52.32 bUMQZh1h0.net
SJISのためにRegisterProviderするのに何かアセンブリ参照追加する必要は無いね

673:デフォルトの名無しさん
23/11/15 14:17:23.51 amYyW+se0.net
>>665
この辺にしとこうぜベイビー。
C#ラブな同士トゥギャザーで仲良くしようぜ。

674:デフォルトの名無しさん
23/11/16 01:21:21.36 AO/C3SS40.net
>>664,666
thx

675:デフォルトの名無しさん
23/11/16 16:07:12.51 IwsAzKF60.net
Windowsに限らず、AndroidやiOSやLinuxなどほとんどのOSで、
ファイル名に使って想定外の動作をしない記号って、アンダーバー「_」くらいでしょうか?
アンダーバーでも誤動作するOSってあります?

676:デフォルトの名無しさん
23/11/16 16:37:54.57 grFWv2Y10.net
そめそもファイル名に使える記号自体が、ハイフンかアンダーバーくらいじゃ

677:デフォルトの名無しさん
23/11/16 17:50:29.03 BDsDlHWv0.net
ファイルシステムによる

678:デフォルトの名無しさん
23/11/16 18:03:46.46 Ms4DzmXb0.net
ファイル名 禁止文字でググれば使えない文字がわかるので
それ以外なら使えるってことだ
mac や linuxはwindowsで使えるやつはOKのようだ

679:デフォルトの名無しさん
23/11/16 18:33:52.17 K6GSt0E9M.net
>>672
チルダは?

680:デフォルトの名無しさん
23/11/16 21:16:19.40 ybAKbR/C0.net
SwiftLint使ってると、大文字や小文字で始まるか、キャメル式かスネーク式かいちいち文句付けてうざいぞぉw

681:デフォルトの名無しさん (ワッチョイ 9fae-Lcu7)
23/11/17 10:11:24.65 QjfY8ooq0.net
>>670
ハイフンはMS-DOSがNGだから、ちょっと怖いかなと

682:デフォルトの名無しさん (スプッッ Sd1f-4LBs)
23/11/17 11:06:24.34 RPLwg0XBd.net
コンピュータ名はアンスコ使えなくてハイフンは使える謎

683:デフォルトの名無しさん (スプッッ Sd7f-Xzxn)
23/11/17 11:28:27.47 180/Rc


684:iHd.net



685:デフォルトの名無しさん (ワッチョイ 9f49-IE43)
23/11/17 12:59:38.86 O8YSwnHi0.net
のーみそコネコネ

686:デフォルトの名無しさん (ワッチョイ 9fae-Lcu7)
23/11/17 13:19:03.32 QjfY8ooq0.net
半角括弧()がどのOSでも使えるって出てきましたけど、本当でしょうか?

687:デフォルトの名無しさん (ワッチョイ 1f5f-MsHe)
23/11/17 13:33:20.62 Sl2+FwO30.net
>>679
キミが「どのOSでも」「使う」という表現に込めた意味を、それぞれ詳しく教えて

688:デフォルトの名無しさん (ワッチョイ 1f08-IE43)
23/11/17 18:14:02.34 TreZcExv0.net
ボーダーラインを探すなんて無駄なことしてないで、
自分が対象にするOSで使える文字だけ使っときなよ、と思いました

暇ならとことん網羅して論文でも書いていてくれ

689:デフォルトの名無しさん
23/11/17 18:44:22.53 dfpiw+/X0.net
割と知られていないけど、cr,lfなどの制御文字もファイル名に使えたりするね
explorerじゃ対応していないからアプリ作る必要があるが

690:デフォルトの名無しさん
23/11/17 18:53:29.25 peW3mEg+0.net
>>675
それどこ情報?

691:デフォルトの名無しさん
23/11/17 20:14:07.64 h0n5cOPg0.net
そもそも使う意味

692:デフォルトの名無しさん (ワッチョイ ffda-u+Tp)
23/11/17 21:37:23.41 wLQk0c+b0.net
条件文がめんどくさい
x>=a かつ x<=b を
if( a <= x <= b )
って書ける言語ないですか?

693:デフォルトの名無しさん (ワッチョイ 9f57-ElWn)
23/11/17 21:40:25.75 PqMW4vo50.net
あったとして、どうするんだ?

694:デフォルトの名無しさん (ワッチョイ 9f42-/zbX)
23/11/17 22:14:39.43 dfpiw+/X0.net
ロックバルーンは99

695:デフォルトの名無しさん (ワッチョイ 9f01-M2ys)
23/11/17 22:17:29.52 7wOEc1lI0.net
>>686
倉庫番の人だよ

696:デフォルトの名無しさん (ワッチョイ 9f57-ElWn)
23/11/17 22:23:01.37 PqMW4vo50.net
Pythonがそう書けるってさ

697:デフォルトの名無しさん (ワッチョイ ffda-u+Tp)
23/11/17 22:27:32.02 wLQk0c+b0.net
マジですか。
C#にも導入してくれないかなぁ

698:デフォルトの名無しさん
23/11/18 07:03:20.87 i2qRQSqI0.net
特段必要性を感じないからどうでもいいかな

699:デフォルトの名無しさん (ワッチョイ e960-jFON)
23/11/18 18:37:11.62 mbkKOvAd0.net
関数の返り値を比較するときに2回書けないから一旦値で受ける、
なんて必要がなくなるから無いよりはある方がいいな。

700:デフォルトの名無しさん (ワッチョイ 22f5-1Z4Z)
23/11/18 18:41:07.35 ypjk0x+00.net
if(( a <= x )&(x <= b ))
でいいよ

701:デフォルトの名無しさん (JP 0H4a-tZqO)
23/11/18 18:52:35.99 jd9YdmKPH.net
最近のパターンマッチングを使って
if (x is >=a and <=b)
と書いてもいい

702:デフォルトの名無しさん
23/11/18 19:32:58.55 iMqzxnwJ0.net
boolでも無いのにifの条件だけで使ってしかも範囲判定条件の戻り値とかあるんか

703:デフォルトの名無しさん (ワッチョイ 46e5-f5/H)
23/11/24 19:38:01.29 6FJDI0Q/0.net
task1~3までをUIスレッドで開始して、それからは
task1→task2→task3→task1みたいに自分の処理が終われば
別taskに処理を移すみたいな感じのソースコードを作りたいです。
処理はすぐ終わる計算でいいです。どうしますか?
ちなみに処理が終わったことがわかる変数などを使うってのは無しにしたいです。

704:デフォルトの名無しさん (ワッチョイ c95f-uy16)
23/11/24 20:01:17.48 wNRDz5oc0.net
>>696
>>自分の処理が終われば

「自分の処理」とは?

705:デフォルトの名無しさん (ワッチョイ 221f-1Z4Z)
23/11/24 20:07:57.51 qxyJ/uo00.net
順繰りに起動すりゃいいだけ

706:デフォルトの名無しさん (ワッチョイ 221f-1Z4Z)
23/11/24 20:09:10.20 qxyJ/uo00.net
てか順にやるならスレッドにする必要ねーな

707:デフォルトの名無しさん (ワッチョイ 8291-PfDU)
23/11/24 20:59:34.65 y2ZJO/eV0.net
そもそも、タスクとスレッドの関係をどういうもんだと思ってるんだか・・・・

708:デフォルトの名無しさん (ワッチョイ 92bd-f5/H)
23/11/24 21:23:25.88 zyxlA+5J0.net
使ったことないけど、Task.ContinueWith()

709:デフォルトの名無しさん (ワッチョイ 46e5-f5/H)
23/11/24 21:28:48.64 6FJDI0Q/0.net
>>698
ごめんなさい誤解ありました。

task1→処理1

task2→処理2

処理1と処理2とかは並列処理です

順繰りというのは難しいのではって感じです。

710:デフォルトの名無しさん
23/11/24 21:33:36.46 6FJDI0Q/0.net
task1→処理1

task2→処理2

task3→処理3

task1→処理1の2回目
処理1の2回目がミソです
処理1の2回目と処理1も並列になっててほしいんです
ちょっぴり無茶なプロセスですかね?

711:デフォルトの名無しさん
23/11/24 21:36:35.38 wNRDz5oc0.net
XY問題再び

712:デフォルトの名無しさん
23/11/24 21:45:07.71 pe/5i+Cu0.net
コルーチンのことかな
一定の処理まで終わらせたら明示的な命令によって他のタスクに切り替えて行くやり方
C#的にはIEnumerator<T>型を返すやつね
コルーチン自体はスレッドに依存しないので必ずしも複数スレッドで非同期処理をやるというわけでもなく
同期的に書けば排他制御が不要になる

713:デフォルトの名無しさん
23/11/24 21:48:48.25 z45fHQco0.net
//また同じやつだな
await 日本語を整理しろ();
回答はそれからだ();

714:デフォルトの名無しさん
23/11/24 22:22:10.58 6FJDI0Q/0.net
>>704
特にやりたいことはないですよ
開始の時間printfしてみたら
処理1
処理2
処理3
処理1の2回目
処理2の2回目
ってなってればいいんですよ

715:デフォルトの名無しさん
23/11/24 22:24:19.01 qxyJ/uo00.net
だから並列で処理する意味ないやろ

716:デフォルトの名無しさん
23/11/24 22:34:42.42 6FJDI0Q/0.net
>>708
特に作りたいものがないんですが思いついたのは
並列処理だと時間短くならね?ですね

717:デフォルトの名無しさん
23/11/24 22:50:29.15 wNRDz5oc0.net
並列関係にあるタスク同士を「矢印」で接続してしまう珍妙なセンスの持ち主

718:デフォルトの名無しさん
23/11/24 22:50:44.86 4bKY7cSe0.net
>>709
今のお前がやってもかえってパフォーマンス悪くなるだろうな

719:デフォルトの名無しさん
23/11/24 22:56:14.00 A049oz9t0.net
また後出しのあいつか

720:デフォルトの名無しさん
23/11/24 23:02:25.18 uPf7hF5o0.net
なんか良くわからん…

721:デフォルトの名無しさん
23/11/24 23:09:30.59 6FJDI0Q/0.net
task1~3までをUIスレッドで開始して、それからは
ここ違いますね、UIスレッドで起動するのはtask1
task1を起動してからは上に書いたとおりです。
後だしではないんでそこは分かってほしい。

722:デフォルトの名無しさん
23/11/24 23:21:12.17 kO4eXafJd.net
ボール1から三つ投げて
どのボールが先に落ちてもいい
全部地面に落ちたら
また1から投げるってことだろ

723:デフォルトの名無しさん
23/11/24 23:27:15.24 GWBHs7u/0.net
それだと処理が終わっでない
終わってから都賀のタスクなんだから
3人いる
長男が投げる、落ちるのを確認したら
次男が投げる、落ちるのを確認したら
三男がなげる、落ちたらサイクル終わり
また最初に戻る
じゃね?

724:デフォルトの名無しさん
23/11/24 23:29:33.37 wNRDz5oc0.net
「後出しではない」と「後出しを自覚できていない」は別の概念

725:デフォルトの名無しさん (ワッチョイ 46e5-f5/H)
23/11/24 23:42:55.25 6FJDI0Q/0.net
>>716
伝わってませんね
落ちるのを確認ではなく投げるのを確認ですかね
長男が次男に投げたからお前も投げろよって声掛けする感じです

726:デフォルトの名無しさん (ワッチョイ 91e5-fy5B)
23/11/24 23:49:18.55 mLC3ri5P0.net
それ単純に順次Task.Run()していくだけじゃん

727:デフォルトの名無しさん (ワッチョイ cd85-4Kip)
23/11/24 23:56:23.11 uPf7hF5o0.net
はぁはぁ
716でいうと三男が投げ出すと長男も2回目を投げろと(長男の1回目は終わってないかもしれない

728:デフォルトの名無しさん (ワッチョイ bfe5-1fOb)
23/11/25 00:01:28.56 5JaI+Sbl0.net
>>719
書いて貰えると嬉しいです
Task1をもう一回呼ぶなんてできます?
1回目はUIスレッドから
2回目はTask3スレッドからです

729:デフォルトの名無しさん (ワッチョイ dfbd-1fOb)
23/11/25 00:03:58.41 6TmsaT3E0.net
>>719 の言う通り、順次Task.Run()すればキューに積まれて順に取り出されて
スレッドプールで実行されるんじゃね。
但し、>>707 で積んだ順番でprintfされることを期待しているようだが、
各Taskが並列実行されるので、Task開始順とprintfの順番が一致する保証はない。

730:デフォルトの名無しさん (ワッチョイ dfbd-1fOb)
23/11/25 00:06:31.50 6TmsaT3E0.net
>>719 じゃないけど、自分で書けない理由を答えろ。
Task1をもう一回呼べない理由を答えろ。
書いてコンパイルして動かせ。

731:デフォルトの名無しさん
23/11/25 00:19:31.02 5JaI+Sbl0.net
Taskの理解間違ってました
Taskってのは関数みたく何度も呼べるもんなんですね知らなかった

732:デフォルトの名無しさん
23/11/25 08:10:48.30 D4bWuN2p0.net
そもそも特に作りたい物も無いのに考えるのがナンセンス

733:デフォルトの名無しさん
23/11/25 08:13:50.02 qghurl9U0.net
それはそう
頭でっかちで理屈だけ先行しがち

734:デフォルトの名無しさん
23/11/25 08:33:26.29 cvmNBgFA0.net
Taskの理解もスレッドの理解もできてなさそう
スレッドだって実体はただの関数で何度でも同じ内容を開始できるが

735:デフォルトの名無しさん
23/11/25 12:16:24.94 +bZiOimW0.net
Taskはスレッドプールを使いやすくしたものだしね
※LongRunningオプションをつけてTaskを生成した場合は専用のスレッド

736:デフォルトの名無しさん (ワッチョイ 5f91-YR7l)
23/11/25 12:44:24.22 2HfGPNlX0.net
基礎の理解を大きく欠くメチャクチャな質問に対して、わからないのに答えるメチャクチャな回答者が大勢出てくる・・・・
知恵袋のことを笑えんな

737:デフォルトの名無しさん (ワッチョイ 67c0-C+qQ)
23/11/25 12:58:31.09 hcYVkcJO0.net
そのうちたまに出るバグに悩まれそう

738:デフォルトの名無しさん (ワッチョイ dfc6-AnfR)
23/11/25 13:11:43.69 Q+BtNXr10.net
スレッドとタスクとプロセスの違いをしっかり説明出来る奴は少ない

739:デフォルトの名無しさん (ワッチョイ c7d4-K+ZK)
23/11/25 13:21:16.14 GnFdMEyV0.net
LWPも含めて説明してくれ

740:デフォルトの名無しさん (ワッチョイ 5f1f-KBoc)
23/11/25 13:51:42.24 QjoVuBi10.net
ここ初心者スレなのよね

741:デフォルトの名無しさん (ワッチョイ dfbd-1fOb)
23/11/25 14:28:34.44 6TmsaT3E0.net
アプリケーションドメインは滅びの道?

JavaのVirtual Threadが気になる。

742:デフォルトの名無しさん
23/11/26 03:09:57.86 TxNzhOp40.net
TASK1~3をそれぞれキュー1~3にどんどん入れていって、
そのキューから同期的にタスク1-3を取り出せばいんじゃね
つか
>ちなみに処理が終わったことがわかる変数などを使うってのは無しにしたい
とかいう条件はなぜに必要なのか
その条件だとタスクではほぼ何もできないわけだが

743:デフォルトの名無しさん
23/11/26 03:09:58.20 TxNzhOp40.net
TASK1~3をそれぞれキュー1~3にどんどん入れていって、
そのキューから同期的にタスク1-3を取り出せばいんじゃね
つか
>ちなみに処理が終わったことがわかる変数などを使うってのは無しにしたい
とかいう条件はなぜに必要なのか
その条件だとタスクではほぼ何もできないわけだが

744:デフォルトの名無しさん
23/11/26 06:34:19.55 WuUXccWm0.net
まず自分の書き込みキューをなんとかしようず

745:デフォルトの名無しさん
23/11/26 06:43:14.79 Yqv2nl500.net
すみません、単刀直入にお尋ねしたいのですが
配列の各要素に入れらた構造体、ないしはクラスがあるとして
その中でそいつらが「自分の現在の添字を確認する」方法ってありますか?
配列の何番目に入っているのかってのを確認したいです。
例えば、自分の現在の添え字を返す関数とかあると嬉しいのですが。
調べてみても、ある値を要素から探してその添字を求めるーみたいなのはあっても
ストレートに自分の今の添字を返すーとかは無いのです。

746:デフォルトの名無しさん
23/11/26 07:52:19.12 Zpp5xLGV0.net
無いもんはない

747:デフォルトの名無しさん
23/11/26 08:39:42.47 rln84VAX0.net
そんなにあれこれ言語知らないけど
配列の内側から自分のIndexを取得できるような言語存在したっけ

748:デフォルトの名無しさん
23/11/26 09:26:10.80 Yqv2nl500.net
>>739
なんで無いんでしょうかね。。需要ある気がしますが。。
調べたい場合簡単なコードで解決するからでしょうか?
配列に入ってる側から自分の添え字を調べる方法ってありますか?

749:デフォルトの名無しさん
23/11/26 09:39:06.68 N0k0I/0p0.net
親オブジェクトを子オブジェクトのプロパティ等に保存して必要な時にIndexOfで取得する

750:デフォルトの名無しさん
23/11/26 09:41:54.74 sVRUNFWaM.net
あえて理由付けするなら、最近の言語では配列をコレクションとして考える傾向が強くインデックスを意識しないようになってきている
リストや連想配列ではインデックスは抽象化されているので直接操作するのを避けるようにするので需要が低い
実際for each文ではインデックスを意識しないだろ

751:デフォルトの名無しさん
23/11/26 10:18:36.32 t46bGHL+d.net
倉庫番君?

752:デフォルトの名無しさん
23/11/26 10:20:36.87 aOnl3nzuM.net
>>741
ない理由は簡単だよ
主な理由は無駄だから
任意の要素は複数のコレクションに入れられるし一つのコレクションに複数入れることが出来るから
要素側で添え字を持つ場合にはそれを区別することになる
そしたら親クラスと添え字のペアは何で保存する?dictionary?独自の保存クラスのインスタンス?
要素数だけ保存インスタンス作るの?と言う話になる

753:デフォルトの名無しさん
23/11/26 10:24:23.79 aOnl3nzuM.net
無くて不便だなと感じるなら一度作ってみたらいいよ
それが使いやすいなら使えばいいしそれに対して他の誰も文句を言わない

754:デフォルトの名無しさん
23/11/26 10:29:28.53 WuUXccWm0.net
配列中のIndexが重要なら固定で作れ
固定が嫌だと言うなら自分のIndexを気にしなきゃいけないような作りにするな

755:デフォルトの名無しさん
23/11/26 10:34:56.71 Mj7uGAuQ0.net
倉庫番の人を相手にする人達

756:デフォルトの名無しさん
23/11/26 10:57:22.74 YkBy/87/0.net
今回は1度の質問で相手に伝わる日本語になっているので合格!!
初心者あるあるの質問だしね

757:デフォルトの名無しさん
23/11/26 11:29:02.31 aOnl3nzuM.net
コレクションの要素の添え字をコレクションで持つ
その要素の添え字をコレクションで持つ
そのまた…
と永遠に終わらない

758:デフォルトの名無しさん
23/11/26 11:42:58.44 xrmT/xcU0.net
どんな手段であろうともきちんと動けばいいんじゃね?(適当

759:デフォルトの名無しさん
23/11/26 12:00:02.74 t46bGHL+d.net
9月から配列配列と言い続けているのに驚く
まだやってんのかよ

760:デフォルトの名無しさん (ワッチョイ 6781-1+JT)
23/11/26 13:02:10.49 xrmT/xcU0.net
それで作品は完成したのか

761:デフォルトの名無しさん
23/11/26 13:41:55.38 YjDORt8e0.net
彼は作品を作ってるんじゃない
ただ配列と格闘してるだけや

762:デフォルトの名無しさん
23/11/26 15:26:09.65 06WEnIxy0.net
配列たのしいよねでんちゃ!でんちゃ!
こうですかね


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