ふらっと C#,C♯,C#(初心者用) Part134

■ このスレッドは過去ログ倉庫に格納されています
2017/11/29(水) 19:23:58.05ID:GNLsbK4F0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part133
http://mevius.5ch.net/test/read.cgi/tech/1510056685/
■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/

■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2017/12/23(土) 19:47:21.47ID:PvZdk9430
>>113
そもそも、なんで提示したコードがdまで実行しないとキャンセルされないか理解できてる?
理解出来てればBackgroundWorkerを別の手法に変えても意味がないことは分かると思うんだけど
2017/12/23(土) 20:47:59.87ID:afY4COyy0
>>107
>Abortはしたくない
元質問者はAbortしたくないとは言ってないと思うぞ
2017/12/23(土) 21:18:44.75ID:XrEDpSoU0
バックグラウンドなんちゃらってなんだ?
タイマーでいいじゃん
2017/12/23(土) 21:19:57.12ID:eJOJ1LQ5M
>>126
そんなに悪くないね
bの後2秒待ってコンソールにハゲと出力
3秒後にc
みたいな仕様変更があったとしたらどうなる?
2017/12/23(土) 21:21:13.92ID:XrEDpSoU0
>>130
アホなん?
そんなレアケース持ち出して何が楽しいんだ?
そんな風になったら別のコーディングするに決まってんじゃん
2017/12/23(土) 21:26:21.49ID:XrEDpSoU0
タイマーでもTickイベントを1秒おきにすればその実装できるし
while+sleepとかアホすぎるわ
2017/12/23(土) 21:29:55.10ID:eJOJ1LQ5M
>>131
推測でしかないが質問者のやりたい事ってAPIが提供されてないアプリのGUIオートメーションだと思うんだ
やってみるとわかるけど、等間隔キー入力の繰り返し、のような単調な操作のほうがむしろレアケースだよ
2017/12/23(土) 21:31:02.84ID:YgD70bUC0
態々スレッド分ける様な処理じゃないのは間違いない
2017/12/23(土) 21:33:38.79ID:XrEDpSoU0
バックグラウンドワーカーとかタイマーじゃなくてTask.Runの中にwhileとsleepとカウンタを全部ねじ込んだほうががまとまりがいいな
2017/12/23(土) 21:37:57.32ID:XrEDpSoU0
やっぱなんでもない
俺のレスはスルーで
2017/12/23(土) 21:39:10.88ID:oBD8VcBx0
相変わらず質問者抜きの議論が大好きだなお前らは
2017/12/23(土) 21:42:59.27ID:eJOJ1LQ5M
ちなみに>>114の実装ならマクロが多少複雑化しても可読性がそこそこ良いのでオススメ

IEnumerable<Action> GetJobs() {
while (true) {
yield return () => SendKeys("A");
yield return () => Sleep(5000);
yield return () => SendKeys("B");
yield return () => Sleep(2000);
yield return () => SendKeys("ハゲ");
yield return () => Sleep(3000);
yield return () => SendKeys("C");
yield return () => Sleep(5000);
yield return () => SendKeys("D");
yield return () => Sleep(5000);
}

この考え方を進化させてJobsをActionの列挙ではなく式木にしたら記述が楽そうだな、とかインタープリターパターンで実装したらユーザー目線で便利そうだな、とか発展していく
2017/12/23(土) 22:13:16.73ID:7ZChdQbJ0
百万年発展し続けてろバーカ
2017/12/23(土) 22:20:22.98ID:eJOJ1LQ5M
初心者用スレというか子供用スレだったのか
141デフォルトの名無しさん (ワッチョイ cf80-fDvV)
垢版 |
2017/12/23(土) 22:36:15.16ID:FPRjmoIB0
非同期処理は、コンテキストが異なるから、処理の実行順番は確定しない

ビジーループするのは、もってのほか。
ビジーループは同期処理

非同期処理は、コールバック関数を使う。
相手の処理が終わったら、コールバック関数を呼んでもらう

コンテキストが異なるものは、マルチスレッド・マルチプロセスでも、
OS がCPU のタイムスライス、スレッド・プロセスの優先度・実行順番を決めているから、
プログラマーができる事は無い

複数のスレッド・プロセスは、無関係に同時に、異なるCPU で動く(並行処理)から、
処理時間が短くなるが、処理の実行順番は、OS が決めるから確定しない

同期処理とは異なる
2017/12/23(土) 23:00:34.49ID:vwLvtl/C0
一番の問題は、最悪5秒戻ってこないポンコツってことだと思う
2017/12/23(土) 23:04:50.10ID:eJOJ1LQ5M
結論はやっぱりTask使えって事だな
2017/12/23(土) 23:31:47.43ID:FPRjmoIB0
そもそも、ビジーループ(ポーリング)しても意味がない

例えば、スレッドA から、10ms 毎にポーリングしても、
スレッドB の処理が10秒掛かれば、千回のポーリングは無意味

ポーリングしても、異なるスレッドの処理を速めることはできない。
OS がCPU のタイムスライス、スレッド・プロセスの優先度・実行順番を決めているから

プログラマーにできることは、コールバック関数を登録することだけ。
スレッドBの処理が終われば、それを呼んでもらうだけ
2017/12/23(土) 23:34:38.24ID:oRgQl+h80
鈴虫がまだ何か言ってるな
鈴虫は鈴虫の学校にでも通ってな
2017/12/24(日) 02:28:49.95ID:BEcZgz8A0
フリーズしない/しても問題ないUIにすればいいだけだと思うが
2017/12/24(日) 07:08:55.16ID:kiz3NtEj0
play_abcdって雑な作りから察すると5秒おきってのはaの動作が終わってから5秒なんじゃね?
本当に5秒感覚でキーを押したいならタイマーがいいけど、各動作を5秒感覚で実行したいならタイマーは使わない方がいいかな
2017/12/24(日) 07:21:26.36ID:ZzoS8BMq0
へー、そんなんだ。すごーい。
2017/12/24(日) 07:22:49.50ID:bwNsD4dr0
クリスマスぐらい女と過ごせよ
2017/12/24(日) 14:33:03.85ID:WF18n6kNM
2〜3台のPCだけで使う小規模なアプリケーションで、不変で追加もしない500×3列程度のデータを扱いたいです。EXCELでいうvlookup関数みたいな参照を行いたいのですが、EntityFrameworkだとSQLserverのインストールが必要?なため別の方法を模索中です。
csvやtxtファイルを実行ファイルと同じフォルダにいれて参照するのがいいか、もしくは別の方法があればご教示いただきたいです
2017/12/24(日) 14:33:41.85ID:EoGwjq2qr
朝Hしてきたww
2017/12/24(日) 14:39:27.53ID:h6xl/PRx0
>>150
EF知ってるならSQLiteが現実的じゃね?
2017/12/24(日) 14:40:54.62ID:i8D7y6TzM
>>150
そんなもんコード埋め込みでいいよめんどくせえ
動きゃいいんだよ
C#erってそういうの好きだろ
2017/12/24(日) 14:44:06.81ID:BNj/0IJ2M
俺ならそんなもん一枚のHTMLとJavaScriptで作ってAWS S3に置くわ
その程度のことにデプロイの手間をかけるのはアホらしすぎる
2017/12/24(日) 17:13:18.55ID:LxzgKTLN0
>>154
いちいちブラウザひらくのめんどくさ
ブラウザだとウィンドウサイズでかいし
2017/12/24(日) 17:45:11.77ID:BNj/0IJ2M
今時一切ブラウザ使わない業務システムなんか存在するのか?
ブラウザくらい常に開いてるだろ
2017/12/24(日) 18:29:58.39ID:/uYLPwgV0
500×3でたかだが1500前後にデータベースは大げさだ
.resxファイルで済む量だろう
2017/12/24(日) 22:22:23.70ID:Pk6n0aea0
>>150
>2〜3台のPCだけで使う小規模なアプリケーションで、不変で追加もしない500×3列程度のデータ

だったら500x3の二次元配列で行けると思う。
2017/12/24(日) 22:47:41.55ID:fqHoYjgG0
DataTableでいいんじゃね
2017/12/24(日) 22:53:06.60ID:MFJnXVyx0
てきとーなクラス作ってXmlSerializerで永続化すりゃOK
検索も500件程度なら速度を気にせずLINQで楽々実装可能
2017/12/24(日) 23:03:51.51ID:V0wW1gjw0
今時新規でXMLはないわ
このまま衰退して消えてくれ
2017/12/24(日) 23:08:30.69ID:T0V8golIa
>>161
最新だと何が人気?
2017/12/24(日) 23:09:33.19ID:8Z10fIlT0
読むだけだしJSONやYAMLでよくね?
2017/12/24(日) 23:22:41.54ID:Tzue5pu10
JSONの指定があればJSONでもいいけど
何も指定がなければXMLで書くけどな
別にレガシーでもなくね?
2017/12/24(日) 23:22:45.70ID:T0V8golIa
>>163
大してかわんねーじゃん
2017/12/24(日) 23:29:42.77ID:ZzoS8BMq0
結論:好きにしろ
2017/12/25(月) 00:41:48.94ID:eNXAkvu40
じゃprofileで
2017/12/25(月) 01:51:22.86ID:GOMg9JlCa
でも項目数多くなって激遅になったらCSVに戻せる構造なら戻したほうがいいよ
2017/12/25(月) 03:41:46.71ID:Jnt6vkvB0
jsonってxmlとくらべて何がおいしいの?
2017/12/25(月) 07:08:19.08ID:8aC1MlXsa
xml、resx、json、yaml、SQLiteといろいろ選択肢がありますね。少し調べてみて良さそうなもの選んでみます。ありがとうございました
2017/12/25(月) 08:10:28.38ID:r7ITo5Fnr
>>169
軽い
2017/12/25(月) 08:12:45.88ID:W15ZQhn00
>>169
XML比なら、
人間にとって扱いやすい
サイズが小さい
読み書きが速い
属性と要素の使い分けをしなくていい
JSON SchemaはXML Schemaより圧倒的に分かりやすく書きやすい
配列、マップ、数値、論理値、文字列という最低限の型付けがあるので、
プログラミング言語のデータ構造とのマッピングがしやすい(XMLは属性やXML Schemaで明示的にマッピングしてやらないと使い物にならない)
2017/12/25(月) 10:12:18.83ID:eSLpDS2SM
人間にとって扱いやすいだけはXMLの方が優れてると思うな
特にデータ量が増えるにしたがってjsonはそのまま読むのが不可能になってくる
2017/12/25(月) 10:15:18.25ID:rqAJYeIu6
どっちでもいい
好きな方を使えばいい
2017/12/25(月) 11:30:37.90ID:ny2AXHbu0
この案件だと、Excelで加工しやすいcsvがマッチしているんじゃないかな?
そりゃxmlだって出来るが、仕組みが大きくなる
2017/12/25(月) 11:35:31.66ID:FHswaYKc6
たしかに
終了
2017/12/25(月) 11:47:08.20ID:IEH/2als0
SYLKファイルにしたっていいんだぜ
どうせ作業量変わんないだろ
178デフォルトの名無しさん (ブーイモ MM27-vkjg)
垢版 |
2017/12/25(月) 12:20:28.09ID:sz9H2GSPM
美容番長だっけ?
2017/12/25(月) 12:22:02.34ID:r7ITo5Fnr
今時パーサーやシリアライザが揃ってるんだからどれでも同じな気はする
2017/12/25(月) 12:56:04.14ID:OQg4hGpXa
>>175
データ量が多くなるとおせーんだよなxml,json
んで運用入ってから素人でも編集できるいいツールはないの?
って普通に無いからな(笑)
本気で作るものほどcsvやxls
2017/12/25(月) 14:38:00.28ID:MGc+vt78d
>>173
ねーよ
2017/12/25(月) 18:37:57.59ID:/b5JEuJS0
結局は小さいデータなら下手なDBとか使うより、
csvの方が丈夫さとか確認のしやすさで良いって言うw
183デフォルトの名無しさん (ワッチョイ b303-G8t+)
垢版 |
2017/12/25(月) 18:59:27.21ID:8wInAEQh0
だから上手なDBとか使えばcsvの方より良いんだろ
2017/12/25(月) 19:08:03.17ID:OOxEDqwma
DBはトランザクションあるから規模に関係無く必要だと思ったら使っとけ

設定ファイル的な話としたら
xmlとjsonって微妙だよねと
185デフォルトの名無しさん (ワッチョイ b303-G8t+)
垢版 |
2017/12/25(月) 19:15:27.15ID:8wInAEQh0
設定ファイル的な話だとしたらjsonって微妙だけどxmlはクソ
xmlはどんな用途向けにもクソ
2017/12/25(月) 19:44:00.45ID:OOxEDqwma
>>185
言うほど変わらんような気がするけど
何が嫌なんだ?
2017/12/25(月) 19:48:52.98ID:Mbt+5Db+6
※個人の感想です
188デフォルトの名無しさん (アウアウカー Sac7-Vzer)
垢版 |
2017/12/25(月) 20:07:35.17ID:y0MybC9Za
>>179
ぶっちゃけこれだろ
189デフォルトの名無しさん (ワッチョイ b303-G8t+)
垢版 |
2017/12/25(月) 20:13:26.84ID:8wInAEQh0
>>186
嫌なのではなくクソだと言っとるのだが?
2017/12/25(月) 20:18:39.56ID:OOxEDqwma
>>189
じゃあ大好物じゃん
2017/12/25(月) 20:18:59.89ID:PGo3p3P9a
アホちゃいまんねんパーでんねんって言われてもどう違うのか本人にしか分からんよw
192デフォルトの名無しさん (ワッチョイ b303-G8t+)
垢版 |
2017/12/25(月) 20:24:10.15ID:8wInAEQh0
>>190
何が気にいらんのか知らんけど変な絡み方するのやめてもらえんかな?
2017/12/25(月) 20:27:44.84ID:Mbt+5Db+6
クソって言いたいだけだろって言いたいんだろう
2017/12/25(月) 20:27:48.56ID:hykLc5AjM
むしろお前が無駄に絡んでる気がするが...
俺も>>179でFAだと思う
2017/12/25(月) 20:31:09.26ID:Mbt+5Db+6
好きなの使えって結論を昨日出しただろ
おわり
196デフォルトの名無しさん (ワッチョイ b303-G8t+)
垢版 |
2017/12/25(月) 20:35:26.95ID:8wInAEQh0
>>194
同じって事はないよ
どの形式でも必要十分な機械可読性を得られるなら
選択の決め手になるのは速度などではなく人間可読性
ヒューマンリーダビリティ
xmlはこれが壊滅的にクソ
2017/12/25(月) 20:54:00.52ID:axpIwit20
可読性しか判断基準がないとか話にならん
2017/12/25(月) 20:55:38.22ID:HvFCkquc0
バックエンドだと設定ファイルは.csがベスト
貧弱なインテリセンスで間違えやすい設定なんか書きたくないっすわ
テストまで考えるとビルドなしで変更可能である意味がほとんどないしな
199デフォルトの名無しさん (ワッチョイ b303-G8t+)
垢版 |
2017/12/25(月) 21:26:28.09ID:8wInAEQh0
今日は特別に俺からのクリスマスプレゼントの言葉を贈ってやろう

お前らはもう少し自分の無知無能と真剣に向きあった方が良い
2017/12/25(月) 21:42:53.76ID:NbKIcSglM
>>180
多くなるならJSON Linesの方が効率いいよ
ログとかで普通に使われるファイル形式
CSVはスキーマが変わると面倒なんだよな
2017/12/25(月) 22:21:29.72ID:NVmmOTaCa
今時csvはなんちゅう本中華
レガシーへ(から)の接続ならしょうがないが
2017/12/25(月) 22:37:36.04ID:6sU1sWLU0
次スレからスレタイに雑談を付加してくれ
2017/12/25(月) 22:48:43.23ID:VEnbH/i+a
>>202
いいアイディアだな
ただこのスレはこのまま残して
初心者雑談用として新しくスレが欲しいな
2017/12/25(月) 22:50:13.06ID:6sU1sWLU0
そんなことしても質問スレで雑談が始まるのは目に見えてるやん...
2017/12/25(月) 22:54:47.74ID:UoNk991a0
議論スレがあるじゃん
脱線しそうなら自発的に移動して

ふらっと C#,C♯,C#(議論用) [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1469538912/
2017/12/25(月) 22:56:14.63ID:6sU1sWLU0
無理でしょ
どこまでが質問の答えなのか雑談なのか区切りが曖昧だし
2017/12/25(月) 23:14:27.18ID:B733ZmRI0
ID真っ赤の奴が出てきたら議論スレに誘導
2017/12/26(火) 02:32:13.70ID:pUXlD1DI0
>>199
ごめんなさい。

今日の朝、靴下にその言葉入ってたら読んでたよサンタさん!
2017/12/26(火) 06:50:53.13ID:tKLgMVXTM
>>207
>>199みたいに自覚ない奴がいる限り誘導しても無駄でしょ
まあXMLに親でも殺されたんだろうな w
2017/12/26(火) 08:12:53.60ID:cT/2Pkr20
ボクのおとうさんは、XMLというやつに殺されました


俺はWPFだなw
2017/12/26(火) 09:02:34.41ID:4/m6WkoIM
初心者なので教えてください。
xml ならDataSet.ReadXml()でお手軽に扱えてたんですが、jsonはどう読み込んで使うのですか?
ちょっとググったら、jQueryとか、webっぽいのが目についたのですが、ローカルexeでも使えるんでしょうか?
212デフォルトの名無しさん (ブーイモ MM1f-vkjg)
垢版 |
2017/12/26(火) 09:11:46.70ID:x+COpgJUM
>>211
NuGetでJson.NETを拾ってくる
2017/12/26(火) 09:16:47.35ID:zc8zApfr0
UWPならWindows.Data.Jsonが使えるのでダウンロードしなくてもよい
2017/12/26(火) 11:03:19.55ID:TKx0k9Mu0
XMLは無能ほど嫌うよな、わかりやすくていいわw
2017/12/26(火) 12:28:40.93ID:OUkXE0b1a
XML最高って言う奴がいるけどDTDとかちゃんと理解して使ってるのか疑問
俺はさっぱりわからなないので放置してる

XMLは賢い人が集まって俺って賢いだろを連発してクソ企画になったって本で読んだ
2017/12/26(火) 12:32:57.48ID:OUkXE0b1a
XMLは同じようなものが大量に並んでてゲシュタルト崩壊?してタグがタグに見えなくなる
2017/12/26(火) 12:45:02.83ID:VJsVtqG+0
jsonの問題はコメントだな、一応使える場合もあるけど本式はコメント使えない
ググると作者が原理主義者でどうにもならんようだ
2017/12/26(火) 12:50:09.20ID:oDLVQMSx6
もう飽きたよこの話題
次の質問マダー?
2017/12/26(火) 18:42:54.83ID:k2JgsGmBd
>>218
じゃあ折角だし
ListviewItemCollectionやCollection<T>をソートするいい方法ってなんかある?
別インスタンスにするのはNG
並び替えたやつをループしてRemoveとAddを繰り返しやる方法以外思いつかなかった
2017/12/26(火) 19:16:47.40ID:cWcYrW8d0
いいってのは何がいいんだ?
メモリ効率か?
ソート速度か?
コーディングの手軽さか?
2017/12/26(火) 19:19:35.90ID:biBlc3d/0
>>219
並び替えたやつをループとは?
どうやって並べ替えた?
2017/12/26(火) 19:20:20.73ID:tRG2bysKa
普通に関数作ればよくね?
2017/12/26(火) 20:21:15.18ID:V+MeXN2+0
そもそもICollection<T>に要素の並び順なんてものはない
IEnumerable<T>として列挙されるときの順番ならOrderBy
その順番を使い回したいならToArray
2017/12/26(火) 20:24:15.51ID:0luiAFcJ0
>>219
分かりづらかったんで質問を変える
private readonly Collection<string> hoge
のhogeを文字列順にするとき
foreach(var s in hoge.orderby()){
hoge.Remove(s);
hoge.Add(s);
}

でできたんだけど理由があってaddは使いたくなかった
add使わないで並び替えってできる?
2017/12/26(火) 20:27:07.94ID:zc8zApfr0
Comparison書いてSortすりゃいいのでは
この手の問題は並び順のルールの方に重点が置かれる、並び替え方なんてこの際どうでもいい
2017/12/26(火) 20:30:23.64ID:Nu277XVha
Collection<string>がICollectionの間違いならToListして代入するだけじゃないの?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況