[過去ログ] ふらっと C#,C♯,C#(初心者用) Part138 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
791(1): (ワッチョイ 9f7f-0FgR) 2018/07/21(土)23:00 ID:gktKld7A0(3/3) AAS
既に>>779に書いてあったね。その通り。
792(1): (ワッチョイ 9f5d-haGl) 2018/07/21(土)23:10 ID:BEEMYUE30(7/9) AAS
>>790-791
レスありがとうございます
>>779 の考えで正しいのか不安だったのですがお陰様で自身が持てました
他に何かおかしなことを言ってしまっていたら教えていただけると嬉しいです
>>788
>>789 はレスとしてとっ散らかっている気がしてきたので一問一答で答えてみます
> つまりフォームアプリでParallel処理内でinvokeってそもそも悪手なんでしょうか
省6
793(1): (ワッチョイ d7b3-vUFk) 2018/07/21(土)23:21 ID:R8KbBSh90(1) AAS
.Invokeではなく.BeginInvokeを使うのはどう?
794(1): (ワッチョイ 9f5d-haGl) 2018/07/21(土)23:30 ID:BEEMYUE30(8/9) AAS
>>793
それって
> それともThread生成してその中でParallelすれば良かったり…?
よりも更にワチャワチャする気がするのですがどうなんでしょう?
ワチャワチャって具体的にどういうことなのか
説明を求められれば頑張ってみようと思いますが、
自分の考えがあっているかも、それをうまく説明できるかどうかも
省1
795(1): (アウアウエー Sadf-0r7x) 2018/07/21(土)23:41 ID://qCwfF7a(2/2) AAS
>>794
そんな難しい話じゃないっすよw
BeginInvokeは非同期に実行される、つまりキューにデリゲートを入れたらすぐに処理を返すので
Invokeのように自分で自分の終了を待機する状態に陥らない
796(1): (ワッチョイ ffe8-U/lW) 2018/07/21(土)23:43 ID:rsQP0F780(5/5) AAS
>>792
有難う御座います
これで行けたので実装試してみます
void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("このメッセージは必ず表示される");
Task.Factory.StartNew(() =>
省5
797(1): (ワッチョイ 9f5d-haGl) 2018/07/21(土)23:55 ID:BEEMYUE30(9/9) AAS
>>795
レスありがとうございます
おっしゃる通りBeginInvokeはキューにデリゲートを入れたらすぐに処理を返すので
次から次へとキューが入って大変なことになりそう・・・と思ったのですが、
そんなに心配することではないのでしょうか
>>796
それで一応動くと思いますが、Parallel.ForEach が終わる前に
省3
798(2): (ワッチョイ ffe8-U/lW) 2018/07/22(日)00:03 ID:qjdpSLXF0(1/8) AAS
>>797
データグリッドビューは進捗状況を見るために更新していて
1行1スレッドで処理されて処理後にどう処理されたかをリアルタイム表示してます
ダメではなく単純に自分が分かってないだけです
この処理ならlocalFinallyが最適かもです
深く調べてみます
799(1): (ワッチョイ 9f5d-haGl) 2018/07/22(日)00:13 ID:IU6x2eOV0(1/8) AAS
>>798
> データグリッドビューは進捗状況を見るために更新していて
> 1行1スレッドで処理されて処理後にどう処理されたかをリアルタイム表示してます
進捗状況の確認が必要なほど1行あたりの処理に時間がかかる理由は何でしょうか?
もしその理由が IO など、CPU 以外のところにあるのだとすれば、
Parallel.ForEach を使うこと自体を見直したほうがいいかもしれません
> この処理ならlocalFinallyが最適かもです
省4
800(3): (ワッチョイ ffe8-U/lW) 2018/07/22(日)00:23 ID:qjdpSLXF0(2/8) AAS
>>799
圧縮ファイルを解凍して中のファイルを加工して再び圧縮し直す
これで1タスクです
1ファイル200MBほどで100ファイル以上処理することが多いです
圧縮解凍、加工は外部ツールを使用しててProcessStartInfoで処理されます
801(1): (ワッチョイ 9f5d-haGl) 2018/07/22(日)00:35 ID:IU6x2eOV0(2/8) AAS
>>800
なるほど〜
CPU 処理も IO もあって微妙なところですね
ちなみにその外部ツールはマルチスレッドを使うオプションはないでしょうか?
(例えば 7-zip.exe だと -mmt がそれにあたります)
もし外部ツールがマルチスレッドに対応してるなら、
並列処理はそっちに任せてしまうというのはどうでしょう?
省2
802(1): (アウアウウー Sadb-rtlg) 2018/07/22(日)00:37 ID:gDKcX53ba(1/2) AAS
汎用的なものとは思えないし、動けばどうでもいいだろ
俺ならそういうのはいちいちGUI付けずにコンソールでやっちゃうな
803(1): (ワッチョイ 9f5d-haGl) 2018/07/22(日)00:45 ID:IU6x2eOV0(3/8) AAS
>>800
それともう一つ、外部ツールを呼び出すのにデフォルトの ParallelOptions で
Parallel.ForEach を呼び出すのはさすがにまずいと思います
ParallelOptions 自体に MaxDegreeOfParallelism というプロパティがありますし、
ParallelOptions の TaskScheduler プロパティに以下のような自前のスケジューラーを
設定すればより柔軟な並列処理を実現できると思います
同時実行の程度を制限するタスク スケジューラを作成する
省6
804(1): (ワッチョイ ffe8-U/lW) 2018/07/22(日)00:48 ID:qjdpSLXF0(3/8) AAS
>>801
7zip使ってます
スレチになるけど
mmtは一つの処理をマルチに実行するものではないでしょうか
圧縮形式は決まってなく複数あるので7zipを使用してます
zip rar lzh以外にも色々
805(1): (ワッチョイ ffe8-U/lW) 2018/07/22(日)00:51 ID:qjdpSLXF0(4/8) AAS
>>803
タスクスケジューラー調べてみます良さそうですね
i7使用しててMaxDegreeOfParallelismは常に8で実行してます
8スレッドで画面カッチカチで処理してます
暴力です
806(1): (ワッチョイ 9f5d-haGl) 2018/07/22(日)00:54 ID:IU6x2eOV0(4/8) AAS
>>804
> mmtは一つの処理をマルチに実行するものではないでしょうか
その通りです
したいことが「進捗状況を表示できるようにすること」と「並列化により処理時間を短縮すること」
だとすれば、それで問題ない(というかむしろその方が望ましい)の思うのですがいかがでしょうか?
807(1): (ワッチョイ 9f5d-haGl) 2018/07/22(日)00:59 ID:IU6x2eOV0(5/8) AAS
>>805
MaxDegreeOfParallelism を使ってらっしゃるなら
とりあえず致命的にまずいことはないと思います
ただ、CPU だけじゃなく、同時に8つのファイルの読み書きを
求められる HDD さんの気持ちも考えてあげて・・・w
808(1): (ワッチョイ ffe8-U/lW) 2018/07/22(日)01:01 ID:qjdpSLXF0(5/8) AAS
>>806
後続の加工処理もありエラー監視も含むので進捗知りたいです
809(2): (ワッチョイ 9f7f-0FgR) 2018/07/22(日)01:03 ID:SZ8yn9810(1) AAS
>>798
localFinallyよりasync/awaitの方が分かりやすいと思う。
private async void button1_Click( object sender, EventArgs e )
{
MessageBox.Show( "このメッセージは必ず表示される" );
await Task.Run( () =>
{
省4
810: (アウアウウー Sadb-rtlg) 2018/07/22(日)01:04 ID:gDKcX53ba(2/2) AAS
makefile使えば?
数行のMakefile書いて make -j8 するだけだよ
811(1): (ワッチョイ ffe8-U/lW) 2018/07/22(日)01:04 ID:qjdpSLXF0(6/8) AAS
>>807
解答先は8GBのRamディスクです
メモリに物理ファイルおいてでここで加工して再圧縮してその後HDDに移動させてます
812(2): (ワッチョイ 9f5d-haGl) 2018/07/22(日)01:18 ID:IU6x2eOV0(6/8) AAS
>>808
Parallel.ForEach を使わなくてもそれはできると思うのですがいかがでしょうか?
>>809
確かにおっしゃる通りですね
後は好みの問題ですが、やはり私は1行ごとに Invoke するよりも
パフォーマンス的に有利な localFinally や更新処理の切り出しを推したいですw
>>811
省5
813(1): (ワッチョイ 9f5d-haGl) 2018/07/22(日)01:27 ID:IU6x2eOV0(7/8) AAS
AA省
814(1): (ワッチョイ ff81-MwhK) 2018/07/22(日)01:35 ID:eU7Qw5rc0(1) AAS
そんな処理速度気にするなら複数PC用意できたりしないのかな?
たぶん内製ツールだと思うけど、そういうのって長期保守とかしないならシンプルでさくっとやれる方向を模索したほうがいい気が…
研究開発兼ねてとかだったらいいんだけど
815(1): (ワッチョイ ffe8-U/lW) 2018/07/22(日)01:43 ID:qjdpSLXF0(7/8) AAS
>>812
そうです、最も投げやすく勝手にマルチしてくれる便利なParallelさんって聞いて使ってるます
別の手段があればコレに拘ることはないと思ってます
>>813
cpuキャッシュとか考慮せずマルチ=高速って誤認識で走ってきて
その中で最適化してきたので
localfinally使用したときと
省4
816: (ワッチョイ ffe8-U/lW) 2018/07/22(日)01:44 ID:qjdpSLXF0(8/8) AAS
ほな寝ます。詳しくありがとうございました!
もしかしたら明日もっとやべーかもです
817(1): (ワンミングク MM7f-ArLl) 2018/07/22(日)01:59 ID:J1Nh86LOM(1) AAS
var block = new ActionBlock<ZipOpParam>(
async (param) => {
await ExecuteZipOpAsync(param);
InvokeUpdateUi(param);
},
new ExecutionDataflowBlockOptions {
MaxDegreeOfParallelism = 8
省5
818: (ワッチョイ 9f5d-haGl) 2018/07/22(日)03:07 ID:IU6x2eOV0(8/8) AAS
AA省
819: (ワッチョイ 9fe3-ol3M) 2018/07/22(日)09:28 ID:e8tLYzcQ0(1) AAS
違うexeキックすれば終わりなんやで?
820: (ワッチョイ d763-ylAy) 2018/07/22(日)13:48 ID:dLVAOvzX0(1/4) AAS
オブジェクト指向について勉強しようと思い、クラスを複数作って実行しようとしたら実行ボタンがプロセスにアタッチというよく分からない物に代わりビルドなども出来なくなってしまいました
どうしたら元に戻せるでしょうか
821: (ラクッペ MM0b-3H7b) 2018/07/22(日)15:37 ID:X/YKRg9/M(1) AAS
参考にした資料がそう(実行ボタンをプロセスにアタッチ)しろと書いているなら
その手法でトラブった時の解決法も資料に書いてあるのでは
提示されたくらいの情報でここで帰ってくる答えは
「ゴミは捨てて作り直せ」
「一旦オブジェクト指向についての記憶を消せ」
だと思う
822(2): (ワッチョイ d763-ylAy) 2018/07/22(日)19:34 ID:dLVAOvzX0(2/4) AAS
このように実行ボタンがアタッチ…となりビルドも行えなくなってしまっています…
プログラムは「確かな力が身に付くc#超入門」から取っていて特にプロセスにアタッチに関する記述も無いので恐らく設定どこか変に弄ってしまったのかと思うのですが…
画像リンク[jpg]:i.imgur.com
823(1): (ワッチョイ 9fd2-4ryk) 2018/07/22(日)19:59 ID:zgYMpfBL0(1) AAS
>>822
ソリューションエクスプローラーで当該プロジェクトを右クリック→スタートアッププロジェクトに設定(みたいなやつ)を選択
824(1): (ワッチョイ ff9a-Z9Wx) 2018/07/22(日)20:02 ID:2+gJNW3/0(1) AAS
>>822
言語じゃなくVisual Studioのスレで聞かないと
それはプロジェクトが読み込まれておらずソースだけ読み込まれている状態
825: (ワッチョイ d763-ylAy) 2018/07/22(日)20:13 ID:dLVAOvzX0(3/4) AAS
>>823
やってみたのですがそれらしき項目がありませんでした…
826: (ワッチョイ d763-ylAy) 2018/07/22(日)20:13 ID:dLVAOvzX0(4/4) AAS
>>824
なるほどありがとうございます vsのスレで聞いてきます
827(1): (ワッチョイ ff81-5o+W) 2018/07/23(月)00:19 ID:glq8mOZ10(1) AAS
revertしろや。意味もわからんだろうがな。
828(1): (ワッチョイ d763-ylAy) 2018/07/23(月)01:08 ID:7plYbgct0(1) AAS
>>827
じゃあなぜそれを言ったのでしょうか…
829: (ワッチョイ 778a-klHS) 2018/07/23(月)02:22 ID:UcAZ2Awl0(1) AAS
ナチュラルマウンティング
830: (ブーイモ MM7b-5o+W) 2018/07/23(月)09:39 ID:GAsLkYgIM(1) AAS
>>828
ググって勉強しろということだ
831(1): (ワッチョイ 7f9f-L2yr) 2018/07/24(火)22:19 ID:KA6Loe2t0(1) AAS
もしかしてASP.NETってJavaみたいなリッチで無料の拡張フレームワーク無いの?
832: (スププ Sdbf-KceU) 2018/07/24(火)22:26 ID:9BkrBjXcd(1) AAS
>>831
?
ASP.NET自体が無料のフレームワークだろ
833: (ワッチョイ 9f9d-gdxi) 2018/07/25(水)13:43 ID:rJjy6ITv0(1/2) AAS
きもは「リッチ」で「拡張」ってことだろ
つまりどんなものを指してるのか全く分からんがな
834(2): (ブーイモ MMbf-rtlg) 2018/07/25(水)14:20 ID:HwnrNSAwM(1) AAS
Classic ASP.NETは拡張性とかガン無視でMSがデフォルトで提供するお仕着せのものだけ覚りゃ一通りできるっていうドカタ向けフレームワークだぞ
Springみたいなのがお好みならASP.NET Core使え
835: (ワッチョイ 9f9d-yhN8) 2018/07/25(水)17:37 ID:rJjy6ITv0(2/2) AAS
>>834
Classic ASP.NETがどのバージョンを指してるか知らんが拡張性無視とか笑わせる
HTTPハンドラとかモジュールとか自作したらほぼすべてカスタムできたわけだが
836(2): (ワッチョイ 9f9b-MwhK) 2018/07/25(水)22:02 ID:LjfK0h7i0(1) AAS
すれ違いで書き込んだ者ですが、こういう連続線をC♯を使って、方眼風の画面にクリックして一番近い座標点から始まり次のクリック座標点って感じで連続線を描きたいんですが、なんか参考になる本だとかサイトってありませんか?
画像リンク[jpg]:i.imgur.com
837(1): (スププ Sdbf-KceU) 2018/07/25(水)22:16 ID:QC64Azkrd(1/2) AAS
>>836
Graphicsクラスを使って自分で線描画するのが手っ取り早いからこのあたりかな
外部リンク[html]:dobon.net
838: (ワッチョイ ff9a-Z9Wx) 2018/07/25(水)22:56 ID:oxjpcelO0(1) AAS
>>837
そのページは閉じた図形だな。
>>836
同じdobonで
折れ線を描く(DrawLinesメソッド)
外部リンク[html]:dobon.net
839(1): (ワッチョイ 7f9f-L2yr) 2018/07/25(水)23:40 ID:sTP5vmoc0(1) AAS
>>834
ASP.NET CoreってPrimeFacesのような無料で便利なライブラリあるの?
商用ならWijmoやTelerik色など々あるようだけど有料はちょっとね
拡張すりゃ出来るとかハンドラ書けばできるとかそんなのは当たり前の事だけど
そんな車輪の再発明に工数が出るわけがないし
840(1): (スププ Sdbf-KceU) 2018/07/25(水)23:47 ID:QC64Azkrd(2/2) AAS
無料ライブラリなんかnugetでなんぼでもインストールできるだろ
841: (ワッチョイ c69f-5Vmn) 2018/07/26(木)00:19 ID:aLLF0qhM0(1/3) AAS
>>840
具体的にはどのパッケージですか?
842(1): (アウアウウー Sa43-Hl5m) 2018/07/26(木)07:51 ID:qCaaK3zMa(1) AAS
>>839
ASP.NET CoreはMVCだからGUIは単なるHTML
ASP.NET Core関係なく普通にHTML/JS/CSSのライブラリを拾ってきて使えばよい
843(1): (オッペケ Sr47-GgdS) 2018/07/26(木)14:29 ID:ujIuVWNLr(1) AAS
ライブラリ不要レベルやん
マウス位置とライン引くだけだし
844: (ワッチョイ e383-tjON) 2018/07/26(木)14:36 ID:rEhHpU7y0(1/2) AAS
PictureBoxがあればなんだってできるみたいな
845: (ドコグロ MMea-WSYg) 2018/07/26(木)16:41 ID:EX1pNRMXM(1) AAS
文字の折返しさえできたら実はなんでもいい
846: (スププ Sd32-KqpP) 2018/07/26(木)16:48 ID:lkW5ctngd(1) AAS
>>843
誰もライブラリ使えなんて言ってないだろ
847(2): (ワントンキン MM42-ylDe) 2018/07/26(木)19:08 ID:BBodZQOSM(1) AAS
>>842
そういう使い方はNGですね
サーバーサイドレンダリングが基本のフレームワークとクライアントサイドのフレームワークは常識的に考えてインピーダンスミスマッチでしょう
(primefacesのように最初からセットで設計されてるならともかく)
それならまだaspnet coreはapiに徹してangularやreact使ったほうがマシです
848(1): (ブーイモ MM5b-Hl5m) 2018/07/26(木)19:18 ID:IphAgnBQM(1) AAS
>>847
なんでクライアントフレームワークの話になるんだ?
AngularやReactのようなものに依存せず単独でページに組み込めるHTML/JS/CSSのコンポーネントなんか腐るほどあるだろ
849(1): (ワッチョイ 5e8a-3ouB) 2018/07/26(木)19:30 ID:36qwSZL10(1) AAS
C#で、VPN経由でCiscoのL2スイッチにログインしてフォワーディングデータベースと各ポートのステータスを取得したいんですが、
簡単に解説しているサイトはないでしょうか?
クライアントを動かすPC - HUB - NATルーター - VPNルーター - ネット - VPNルーター - HUB - Ciscoルーター - 目当てのCisco L2スイッチ
ていう状態です。
850: (ワッチョイ 16e8-4UL4) 2018/07/26(木)19:41 ID:jgVPt9Lg0(1/2) AAS
LinQの中身ってfor文ってホント?
851: (ワッチョイ f317-53i4) 2018/07/26(木)19:42 ID:CSIl69XB0(1) AAS
アイドルグループの中身は知りません
852(2): (ワッチョイ 16e8-4UL4) 2018/07/26(木)19:49 ID:jgVPt9Lg0(2/2) AAS
LinQクラスの各メソッドの中身の味方教えてください
853: (スッップ Sd32-UO0F) 2018/07/26(木)19:51 ID:XPlHGtVDd(1) AAS
>>852
github
854(1): (ワッチョイ d27f-J6FL) 2018/07/26(木)19:55 ID:gWAgddOO0(1/2) AAS
>>852
外部リンク[cs]:referencesource.microsoft.com
855(1): (ワッチョイ 929d-cPc7) 2018/07/26(木)20:49 ID:X2GH2dHI0(1) AAS
>>847
NGかどうかはお前の都合だがな
ASP.NETでもWebFormあたりは、サーバ側とクライアント側の統合を目指してたんだよ
クライアントスクリプト一切書かなくてもAJAXできるコントロールとかまであった
だが今の流れはサーバサイドはサーバサイド、クライアントはクライアントな流れ
クライアントはすきなライブラリ使え
>それならまだaspnet coreはapiに徹して
省1
856: (ワッチョイ c69f-5Vmn) 2018/07/26(木)20:51 ID:aLLF0qhM0(2/3) AAS
>>848
ASP.NET Coreと相性いいのは無いね
857(1): (ブーイモ MM32-tjON) 2018/07/26(木)20:59 ID:0BZQ2aB/M(1/3) AAS
ASP.NETの問題というよりC#自体がwebのフレームワークと相性が悪いような…
おとなしくtypescript使ったほうが楽かなとは思う
858: (ワッチョイ c69f-5Vmn) 2018/07/26(木)21:10 ID:aLLF0qhM0(3/3) AAS
>>855
WebFormsの時からずっとだけど鯖で出力したhtmlやバックエンドの挙動を把握してJS書かないといけないからめんどくせえじゃん
なんのためにナマのhtmlを隠蔽したのかって話になる
htmlを隠蔽すると決めたなら徹底しなきゃならん
apiに徹すればクライアントはクライアントで綺麗に切れるからそんな煩わしさから開放される
859: (ワッチョイ 4b9e-h/lP) 2018/07/26(木)21:25 ID:+zykdZnW0(1) AAS
LinQ は、Rails のQuery object と同じだろ
where 何々
order by 何々
別々に書いた文字列を、1つのSQL 文にまとめて、DB に問い合わせする
860: (ワッチョイ 92d2-UO0F) 2018/07/26(木)21:32 ID:Q5F+5vhQ0(1) AAS
>>857
ちょっと何言ってるかわからない
861: (ワッチョイ 1680-P01o) 2018/07/26(木)21:43 ID:wePnpHti0(1) AAS
>>849
C#が扱うのはTCPあたりだけじゃないのか
そっから下はOSやら何やらの仕事だし上はCISCOのマニュアルなり読めとしか言えそうにない
862(2): (ワッチョイ 16e8-53i4) 2018/07/26(木)21:45 ID:F57VHmfS0(1/4) AAS
ソリューションエクスプローラーで.csファイルのなめえ変えてもデバッグできる?データ壊れない?
863: (ブーイモ MM32-tjON) 2018/07/26(木)21:47 ID:0BZQ2aB/M(2/3) AAS
>>862
gitというものがある
そいつを使えば自由自在に試し放題だ
864: (ワッチョイ 16e8-53i4) 2018/07/26(木)21:50 ID:F57VHmfS0(2/4) AAS
いやあああああああ
これ理解してないと動かなくなるやつうううう
画像リンク[png]:i.imgur.com
865: (ワッチョイ e383-tjON) 2018/07/26(木)21:51 ID:rEhHpU7y0(2/2) AAS
こういうハッキングの匂いがするやつは回答しないほうがいい
866(1): (ワッチョイ d27f-J6FL) 2018/07/26(木)21:51 ID:gWAgddOO0(2/2) AAS
>>862
ソリューションエクスプローラー上での名前の変更は問題なく出来る
867(2): (ブーイモ MM32-tjON) 2018/07/26(木)21:53 ID:0BZQ2aB/M(3/3) AAS
git使わなくてもソリューションのフォルダごとコピーかzip圧縮でも十分だけど
868(1): (ワッチョイ 16e8-53i4) 2018/07/26(木)21:55 ID:F57VHmfS0(3/4) AAS
>>866
>>867
ごめん無事でした
なんかVSがクラス名と一致させようとするからダメかと思いました
ありがとうございます
869: (ワッチョイ 16e8-53i4) 2018/07/26(木)21:59 ID:F57VHmfS0(4/4) AAS
>>854
これ見てみます
ありがとうございます
870: (ワッチョイ 238a-nbnO) 2018/07/26(木)22:20 ID:uwMXaYNj0(1) AAS
>>868
javaとは違うんだよ
871: (ワッチョイ b7d2-dWiX) 2018/07/26(木)22:27 ID:ySl3KkZ10(1) AAS
>>867
gitでもフォルダコピーでも、自由に試し放題なのは同じだが
gitだとフォルダコピーに該当する操作が一瞬なんだよね
フォルダコピーだとある程度大きいプロジェクトになるとプログレスバーを待たなきゃならん
上下前次1-新書関写板覧索設栞歴
あと 131 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.129s*