ふらっと C#,C♯,C#(初心者用) Part159
■ このスレッドは過去ログ倉庫に格納されています
!extend:checked:vvvvv:1000:512 !extend:checked:vvvvv:1000:512 次スレを立てる時は↑を3行冒頭に書くこと(1行分は消えて表示されない為、もう1行は予備) 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください。見かけたらNGしましょう。相手してしまったらあなたも荒らしです >>980 を踏んだ人は新スレを建てて下さい。>>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part158 https://mevius.5ch.net/test/read.cgi/tech/1679783460/ ■関連スレ C#, C♯, C#相談室 Part97 https://mevius.5ch.net/test/read.cgi/tech/1671585518/ ■コードを貼る場合は↓を使いましょう。 https://ideone.com/ https://dotnetfiddle.net/ 初心者はまずVisual Studioを使いましょう。なおVisual Studioの使い方などに関しては各バージョンで違うので専用スレでお願いします http://www.visualstudio.com/downloads/ ■情報源 https://learn.microsoft.com/ja-jp/dotnet/standard/class-libraries https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/ https://learn.microsoft.com/en-us/dotnet/standard/class-libraries https://referencesource.microsoft.com/ https://source.dot.net/ ・Insider.NET > .NET TIPS - @IT https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html ・DOBON.NET .NET Tips https://dobon.net/vb/dotnet/index.html ++C++; // 未確認飛行 C https://ufcpp.net/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured >>622 まあそうだね。 回答者の側にも自分の答えられる範囲に無理矢理誘導しようとしてる節があるのも気になるけど。 決まった順番で同じファイルに書き込みたい状況やファイル書き込みより計算処理の方が遥かに時間がかかる状況なんていくらでもあるでしょ 処理速度向上のために並列化した計算結果を直列化するのはmap/reduceと同じで並列処理の基本パターンだと思うが その際にメモリ効率や後続処理の都合でファイルに書き出しながらreduce相当の集約処理をするのもよくあるやり方 ついでに言うと真の目的を自覚してそれを他人に誤解なく伝えられるように言語化できる人間ってのはそうそういない 自分の言いたいことを相手に伝えようとする努力はもう少ししろよとは思うが真の目的を言語化すること初心者に求めるのは酷 >>598 で(細かい所は端折られてるが)質問者の要望を満たしたほぼ完璧な回答が出てるのに何の議論をしてるんだろうか >>620 マルチスレッド何だから、オープンしたファイルクラスオブジェクトを共有すれば良いだけ 各スレッドでファイルのオープンとクローズをやる必要は無い >>628 壊れないよ。 追記でなく他のスレッドが書き込むサイズを把握して書き込み開始位置(現在のファイルサイズよりも先) をちゃんと指定すれば大丈夫。 FILE_SHARE_WRITE指定だから複数スレッド同時に書き込めるし、 なんなら複数プロセスでも書き込める。 >>632 初心者というか熟練者でもというか、それを不足なく出来ている人はあんまりいないような。 少なくともここで議論()してる連中は全滅だね。 >>634 資源を複数のTHREADでShareしているだけで並列処理とは違うよね 同時に書けるのは一つのポイントだけだからCPUが増えても速度が2倍4倍とかにならない >>636 並列処理だよ。 ファイルポインタの場所に対して書き込んでるのではなく、 OVERLAPPED構造体で指定した位置からそれぞれのスレッドが非同期で同時に書き込む。 .NETのソース隅から隅までは読んでないけど、FileStreamの内部でoverlapped構造体使用してたような記憶 その認識で合ってるよ .NET4以降ならメモリマップドファイル使えるからそちらで共有するけど ファイルはシーケンシャルで書くのが一番効率が良い 順番に並べる必要があるなら後でソートできるようにレコードをきちんと設計しておけば問題は起こらない 上でされてるいくつあるかも判らないスレッドごとに開始位置をシークして…なんて主張は馬鹿の発想 ちゃんと設計しないと逆にパフォーマンス落ちるぞって、当のMSがWriteFileのドキュメントで言ってるからね 妄想だけど、HDD、SSDよりも異次元レベルで速いストレージの時代になったら それも変わってくるんかなとか思ったり 十年とかでそうなることはないやろけど 確かにハードの進化がソフトを凌駕するからなぁ windowsも出た頃は二世代後くらいのハードを想定して作ったとか後付で言ってたかな、遅くて使い物にならなかったよな最初の頃は(笑) >>647 3.0からだな 95β見た(入れた)瞬間は窓から投げ捨ててやろうかと思ったわ 巷の公式販売では祭りだったし買ったけどw まともに触ったWindowsは95からだなぁ 伯父さんの家に3.1あったけど、ちょっとゲーム触らせてもらった程度だし 3日くらいぶっ続けでカンファレンスやってるみたいだけど英語わからんからやめとこ… 4.8.1は.NET Frameworkであって.NETじゃないが そろそろ.NETの頭のドット消して欲しい 色々紛らわしかったりめんどい 頭のドットもだが、もうちょっと固有な名前を付けてほしいよな 検索時のS/N比が… >>652 英語分からんってヤバくね IT業界で1番必要なスキルだと思うが? SilverLight<よっしゃ XNA<固有な名前なら任せろ >>658 Don't worry. My English skills are much better than yours. Waimo eigo tyoto Dekiruyo !! Windowsで.net5以上でshift-jis使うのに Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); この1行いるのは知ってます System.Text.Encoding.CodePagesを参照する必要があると書いてあるところと いらないしいると書いてあるのは間違いだと書いてあるところがあったので どちらが正しいのでしょうか? .NET Core 3.0か3.1あたりで本体に入ったから今はもういらない >>662 Kono Hage!! If you have no hair at all, shut up and get out of here. SJISのためにRegisterProviderするのに何かアセンブリ参照追加する必要は無いね >>665 この辺にしとこうぜベイビー。 C#ラブな同士トゥギャザーで仲良くしようぜ。 Windowsに限らず、AndroidやiOSやLinuxなどほとんどのOSで、 ファイル名に使って想定外の動作をしない記号って、アンダーバー「_」くらいでしょうか? アンダーバーでも誤動作するOSってあります? そめそもファイル名に使える記号自体が、ハイフンかアンダーバーくらいじゃ ファイル名 禁止文字でググれば使えない文字がわかるので それ以外なら使えるってことだ mac や linuxはwindowsで使えるやつはOKのようだ SwiftLint使ってると、大文字や小文字で始まるか、キャメル式かスネーク式かいちいち文句付けてうざいぞぉw >>670 ハイフンはMS-DOSがNGだから、ちょっと怖いかなと コンピュータ名はアンスコ使えなくてハイフンは使える謎 _で始まるファイル名だとコンパイル出来ない言語は観た覚えがある 半角括弧()がどのOSでも使えるって出てきましたけど、本当でしょうか? >>679 キミが「どのOSでも」「使う」という表現に込めた意味を、それぞれ詳しく教えて ボーダーラインを探すなんて無駄なことしてないで、 自分が対象にするOSで使える文字だけ使っときなよ、と思いました 暇ならとことん網羅して論文でも書いていてくれ 割と知られていないけど、cr,lfなどの制御文字もファイル名に使えたりするね explorerじゃ対応していないからアプリ作る必要があるが 条件文がめんどくさい x>=a かつ x<=b を if( a <= x <= b ) って書ける言語ないですか? 関数の返り値を比較するときに2回書けないから一旦値で受ける、 なんて必要がなくなるから無いよりはある方がいいな。 if(( a <= x )&(x <= b )) でいいよ 最近のパターンマッチングを使って if (x is >=a and <=b) と書いてもいい boolでも無いのにifの条件だけで使ってしかも範囲判定条件の戻り値とかあるんか task1〜3までをUIスレッドで開始して、それからは task1→task2→task3→task1みたいに自分の処理が終われば 別taskに処理を移すみたいな感じのソースコードを作りたいです。 処理はすぐ終わる計算でいいです。どうしますか? ちなみに処理が終わったことがわかる変数などを使うってのは無しにしたいです。 >>696 >>自分の処理が終われば 「自分の処理」とは? そもそも、タスクとスレッドの関係をどういうもんだと思ってるんだか・・・・ 使ったことないけど、Task.ContinueWith() >>698 ごめんなさい誤解ありました。 task1→処理1 ↓ task2→処理2 処理1と処理2とかは並列処理です 順繰りというのは難しいのではって感じです。 task1→処理1 ↓ task2→処理2 ↓ task3→処理3 ↓ task1→処理1の2回目 処理1の2回目がミソです 処理1の2回目と処理1も並列になっててほしいんです ちょっぴり無茶なプロセスですかね? コルーチンのことかな 一定の処理まで終わらせたら明示的な命令によって他のタスクに切り替えて行くやり方 C#的にはIEnumerator<T>型を返すやつね コルーチン自体はスレッドに依存しないので必ずしも複数スレッドで非同期処理をやるというわけでもなく 同期的に書けば排他制御が不要になる //また同じやつだな await 日本語を整理しろ(); 回答はそれからだ(); >>704 特にやりたいことはないですよ 開始の時間printfしてみたら 処理1 処理2 処理3 処理1の2回目 処理2の2回目 ってなってればいいんですよ >>708 特に作りたいものがないんですが思いついたのは 並列処理だと時間短くならね?ですね 並列関係にあるタスク同士を「矢印」で接続してしまう珍妙なセンスの持ち主 >>709 今のお前がやってもかえってパフォーマンス悪くなるだろうな task1〜3までをUIスレッドで開始して、それからは ここ違いますね、UIスレッドで起動するのはtask1 task1を起動してからは上に書いたとおりです。 後だしではないんでそこは分かってほしい。 ボール1から三つ投げて どのボールが先に落ちてもいい 全部地面に落ちたら また1から投げるってことだろ それだと処理が終わっでない 終わってから都賀のタスクなんだから 3人いる 長男が投げる、落ちるのを確認したら 次男が投げる、落ちるのを確認したら 三男がなげる、落ちたらサイクル終わり また最初に戻る じゃね? 「後出しではない」と「後出しを自覚できていない」は別の概念 >>716 伝わってませんね 落ちるのを確認ではなく投げるのを確認ですかね 長男が次男に投げたからお前も投げろよって声掛けする感じです それ単純に順次Task.Run()していくだけじゃん はぁはぁ 716でいうと三男が投げ出すと長男も2回目を投げろと(長男の1回目は終わってないかもしれない >>719 書いて貰えると嬉しいです Task1をもう一回呼ぶなんてできます? 1回目はUIスレッドから 2回目はTask3スレッドからです >>719 の言う通り、順次Task.Run()すればキューに積まれて順に取り出されて スレッドプールで実行されるんじゃね。 但し、>>707 で積んだ順番でprintfされることを期待しているようだが、 各Taskが並列実行されるので、Task開始順とprintfの順番が一致する保証はない。 >>719 じゃないけど、自分で書けない理由を答えろ。 Task1をもう一回呼べない理由を答えろ。 書いてコンパイルして動かせ。 Taskの理解間違ってました Taskってのは関数みたく何度も呼べるもんなんですね知らなかった そもそも特に作りたい物も無いのに考えるのがナンセンス Taskの理解もスレッドの理解もできてなさそう スレッドだって実体はただの関数で何度でも同じ内容を開始できるが Taskはスレッドプールを使いやすくしたものだしね ※LongRunningオプションをつけてTaskを生成した場合は専用のスレッド ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる