[過去ログ] ふらっと C#,C♯,C#(初心者用) Part141 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
556: (スププ Sd22-WCNk) 2019/02/08(金)00:59 ID:wLiZux8Md(1) AAS
>>555
ソースコードから生成しないのは非効率でしょ
557
(1): (ワッチョイ 6ef2-Yfay) 2019/02/08(金)01:02 ID:kZW3St4e0(1) AAS
ソースコードから設計書出すならわかるけど、今回の質問はヘルプファイルでしょ?
558: (アウアウエー Sa0a-/S9r) 2019/02/08(金)01:18 ID:e7pcoQvna(1) AAS
社内ならConfluenceみたいなwiki的なサービス使えば?
ファイルで配ると後でメンテに苦労することになるよ
559: (ワッチョイ e247-WCNk) 2019/02/08(金)01:22 ID:yxq5pHtX0(2/2) AAS
>>557
C#のスレなんだからヘルプと言えばクラスリファレンスだろ
560: (ササクッテロル Spd1-Yfay) 2019/02/08(金)01:45 ID:NCJ1sppLp(1) AAS
ユーザー向けのヘルプファイルだろ
質問した本人出てこないから結論出ないけど
561: (アウアウエー Sa0a-OF6d) 2019/02/08(金)06:02 ID:86VvLP3ma(1) AAS
簡単なゲーム作ってみたのだけど仮にこれを配布するとしたら
動作環境は何を基準にして明記したらいいのでしょうか

Windowsの人なら特になにか入れてもらわなくてもだいたい動くってことでしょうか
562: (ドコグロ MMca-3tWi) 2019/02/08(金)07:19 ID:en2thcC6M(1) AAS
>>555に一票
俺はAsciiDocだけど
563
(1): (スッップ Sd22-lwMy) 2019/02/08(金)07:20 ID:Weq4zX9xd(1) AAS
対処にした.netでしょう。

win7はデフォだと3.5
win8がデフォだと4.5
win10はデフォ4.6がはいってる。
win8とwin10は3.5系はデフォでは入ってない。
一般的には、4.5で作っておけばトラブルは少ない。
async awaitも使えるし、入ってることが期待できる。
省3
564: (ワッチョイ cd0c-feI+) 2019/02/08(金)07:33 ID:JXgoNARF0(1/2) AAS
むしろCoreはランタイムをSelf-containedにできるから実行環境の状況を気にせず済むでしょ
(まだデスクトップアプリの開発環境として整ってるとは言えないけどそれはそれ)
565: (スッップ Sd22-bIN/) 2019/02/08(金)07:37 ID:N+zrhIiBd(1/2) AAS
>>563
4.5はもうサポート切れだからだめやろ
566
(2): (ドコグロ MMd5-/S9r) 2019/02/08(金)14:02 ID:wLzz2paeM(1/6) AAS
今更新規でFull .NET使うのはお勧めできないな
結局.NET standardはMSが早くも投げ出して崩壊し、今後は.NET Coreに一本化される
既存の.NETアプリは全てレガシーの産廃だ
567: (スッップ Sd22-bIN/) 2019/02/08(金)14:09 ID:N+zrhIiBd(2/2) AAS
>>566
ASP.NET Coreも、3.0からは.NET StandardじゃなくてCore3.0だけをターゲットにするしねw
568
(4): (ワッチョイ a205-BpIe) 2019/02/08(金)16:42 ID:DCBa2RJt0(1/3) AAS
指定のdatetimeまで待つ処理はどのように書けばよいでしょうか?
GUIアプリケーションで出来れば待っている間も操作可能
なるべくcpuの負担が軽くなる方法が良いです
よろしくお願い致します。
569
(1): (ワッチョイ 2d61-VUEs) 2019/02/08(金)16:47 ID:xI0+6qTx0(1/6) AAS
>>568
それは、まず、タイマーを起動して、1秒間に一回程度、自前の関数が
呼び出されるようにしておく。そして、その自前の関数で現在の日時を
取得して、条件に合う日時になっているか調べる。そして、条件に合って
いれば、好きな処理をする。そうすればいい。
570
(1): (ワッチョイ 024b-GiBE) 2019/02/08(金)16:58 ID:hTn4Mfg30(1/2) AAS
>>569
Thread.Sleepの方がいいんじゃね?
571
(1): (ドコグロ MMd5-/S9r) 2019/02/08(金)17:08 ID:wLzz2paeM(2/6) AAS
>>568
タスクスケジューラ
572
(1): (ワッチョイ 2d61-VUEs) 2019/02/08(金)17:20 ID:xI0+6qTx0(2/6) AAS
>>570
それだと GUI の処理がほぼ完全に止まってしまい、アプリがほとんど操作不能
になるハズ。
573: (ワッチョイ 9232-/WZR) 2019/02/08(金)17:23 ID:T5iT/olM0(1) AAS
>>568
アプリが起動しっぱなしなら指定日時から現在日時を引いて
await Task.Delay()等でタイムアウト待つとか、他は>>571かね
574: (ワッチョイ fe02-q2E1) 2019/02/08(金)17:28 ID:1w1isakW0(1) AAS
do-whileもいいと思う
575: (ワッチョイ 024b-GiBE) 2019/02/08(金)17:33 ID:hTn4Mfg30(2/2) AAS
>>572
待つロジックをThreadにすればいいだけじゃね?
576: (ワッチョイ 2d61-VUEs) 2019/02/08(金)17:48 ID:xI0+6qTx0(3/6) AAS
マルチ・スレッドというのは、プログラミング経験を沢山積んだ人が使うもので、
非常に原因の特定が難しいバグを引き起こすことがあるので、初心者には
お勧めできない。同期オブジェクトや atomic アクセス、volatile などを
正しく理解してからでないと危険を伴うことがある。

async も独特で複雑なことをやっているので、プログラミング初心者が、何が起きて
いるのかを理解するのは難しい。なんとなく動くかもしれないがうかつに使うのは
やめたほうがいいと思う。
577: (ワッチョイ 2d61-VUEs) 2019/02/08(金)17:50 ID:xI0+6qTx0(4/6) AAS
async は、↓のような複雑な control flow になる。
それを全部理解してから出ないと危険。

画像リンク[png]:docs.microsoft.com
外部リンク:docs.microsoft.com
578: (ワッチョイ cd0c-feI+) 2019/02/08(金)18:11 ID:JXgoNARF0(2/2) AAS
GUIちゅーてんだから普通にWinforms/WPFのTimer/DispatcherTimerを紹介すりゃええんでないの
数日間待機させたいとかになるとまた話が違ってくるしもうちょい質問の要件をハッキリさせて欲しいけど
579: (ブーイモ MMcd-FdHg) 2019/02/08(金)18:25 ID:ccTwL3cjM(1) AAS
指定日時後の起動はタスクスケジューラに任せた方が良いと思う
GIU側の仕事はスケジューラヘの登録と指定日時にスケジューラが起動したプロセスとの通信
580: (ワッチョイ 2d61-VUEs) 2019/02/08(金)18:28 ID:xI0+6qTx0(5/6) AAS
C#も汚い言語になってきたなー
581: (ワッチョイ 2d61-VUEs) 2019/02/08(金)18:32 ID:xI0+6qTx0(6/6) AAS
なんか、JavaScript そっくりになってきる。JavaScript は汚いのにな・・・。
582: (スプッッ Sd82-bIN/) 2019/02/08(金)18:49 ID:5c9t7/Awd(1) AAS
汚いとは?
583
(2): (ドコグロ MMd5-/S9r) 2019/02/08(金)18:56 ID:wLzz2paeM(3/6) AAS
JavaScriptそっくりもクソも、JavaScriptのasync/awaitはC#が発祥だぞ
それをJavaScriptもPythonもKotlinもそっくりそのまま真似した
汚い機能だと感じる君の感覚は否定しないが、好みは別にして非同期プログラミングのデファクトスタンダードであるのは事実だ
584: (ワッチョイ a1d2-hHwN) 2019/02/08(金)19:49 ID:lL88DpXz0(1) AAS
割り込んですまない。
SolrNet を使ったことあるヤツがいたら知恵を貸して欲しい。

SolrNet を使ってこんなことをやってみた。

Startup.Init<[適当なモデルクラス]>( [SolrのサーバーURL] );
var solr = ServiceLocator.Current.GetInstance<ISolrOperations< [適当なモデルクラス] >>();

まあごく当たり前の初期処理なのだが、実行すると2行目の Current の中身が null でヌルポエラーになる。

原因がわからなくてしばらく悩んで、GitHub にあるサンプルコードをダウンロードしてきてコピペしても同じだったのだが、
省6
585
(2): (アウアウエー Sa0a-gVV1) 2019/02/08(金)20:41 ID:OM4aCJGta(1/2) AAS
>>568
一応これでできるけど、これがベストかどうかは知らん
private static async Task WaitTillAsync(DateTime dt)
{
  var now = DateTime.Now;
  var span = dt > now ? dt - now : TimeSpan.Zero;
  await Task.Delay(span);
省8
586
(1): (ワッチョイ aeda-OF6d) 2019/02/08(金)21:46 ID:tTA+g4g80(1) AAS
>>585
それだとNTPで時計合わせが発生したらズレる
素直にSystem.Timers.Timerで500ms位ごとにElapsedさせて、
指定時刻を過ぎてないか見るのが簡単。

マイクロ秒まで精度出したいっていうのなら、そもそも使うOS間違ってる。
587: (ワッチョイ 82ad-bIN/) 2019/02/08(金)22:17 ID:uDI35RTx0(1) AAS
>>583
Rustは結局どうなったんだっけ?
588
(1): (ワッチョイ a205-BpIe) 2019/02/08(金)22:27 ID:DCBa2RJt0(2/3) AAS
みなさんありがとうございます。
一応自分で書いていたのは>>585さんに近くて設定時刻前ならそのまま、設定時刻を過ぎてたら一日足して現在時刻との差をawait Task.Delayしました。
タイマーの精度はそんなに必要なく1分間隔で大丈夫で、24時間起動で毎日朝8時から夕方17時までプログラムを止めるみたいな感じです。
同じプログラムを大量に起動するので処理はなるべく軽いのが希望で
ループ処理で毎分チェックするようなのは重いイメージがあるのですが大丈夫でしょうか?
また、時計合わせが発生したらズレるというのはどういうことでしょう?
589: (ドコグロ MMd5-/S9r) 2019/02/08(金)22:30 ID:wLzz2paeM(4/6) AAS
>>588
ポーリングが嫌ならタスクスケジューラを使えばいい
プログラムから簡単に登録できる
590
(2): (アウアウエー Sa0a-gVV1) 2019/02/08(金)22:53 ID:OM4aCJGta(2/2) AAS
>>586
えらい重箱の隅だけどまあそうだねw
private static async Task WaitTillAsync(DateTime dt)
{
  await Task.Run
  (
    () => { while (dt > DateTime.Now) Thread.Sleep(500); }
省2
591: (ドコグロ MMd5-/S9r) 2019/02/08(金)23:23 ID:wLzz2paeM(5/6) AAS
>>590
プロセスが落ちることを想定せよ
NTPなんかより遥かに影響を受ける可能性の高い事象である
やり直し
592
(1): (オッペケ Srd1-da9w) 2019/02/08(金)23:32 ID:Waqd0NNdr(1) AAS
どのへんでプロセス落ちるの?
593
(1): (ワッチョイ a205-BpIe) 2019/02/08(金)23:33 ID:DCBa2RJt0(3/3) AAS
>>590
Thread.Sleepの所Task.Delayにしても大丈夫でしょうか?
594
(1): (ドコグロ MMd5-/S9r) 2019/02/08(金)23:42 ID:wLzz2paeM(6/6) AAS
>>592
どこでも
質問者は24時間起動って言ってるんだから当然想定すべきだよ
595
(1): (アウアウエー Sa0a-gVV1) 2019/02/09(土)00:44 ID:jhOjUKEBa(1/4) AAS
>>593
もちろんいいと思うけど、

() => { while (dt > DateTime.Now) Thread.Sleep(500); }

async () => { while (dt > DateTime.Now) await Task.Delay(500); }

に文字数が増えて、使うTaskも増えて、かといってメリット無いような気が
596: (ワッチョイ 2de3-VUEs) 2019/02/09(土)00:46 ID:3dJvh84X0(1) AAS
await, async は、簡単なことを難しくしてしまう。
597: (ワッチョイ 2d61-VUEs) 2019/02/09(土)00:52 ID:8aikkfMy0(1/3) AAS
C#は、もはや、C++やCとは似ても似つかなくなってしまってる。
control flow がめちゃくちゃ複雑で、何をやってるのかわからなくて
生ポインタの1,000倍危険。
598
(1): (アウアウエー Sa0a-gVV1) 2019/02/09(土)00:58 ID:jhOjUKEBa(2/4) AAS
() => { while (dt > DateTime.Now) Task.Delay(500).Wait(); }
の方が素直か。
何かTask.Delay使った方がいい理由ってあるかな
599
(1): (ワッチョイ 9140-/WZR) 2019/02/09(土)01:13 ID:dvMZ7Shb0(1/3) AAS
PDFファイルからテキストを抽出する方法でオススメはありますか?
調べたところiTextSharpとPDFBoxは見つかりましたが、たまに読めないPDFがあるのが残念です。
600: (ワッチョイ 2d61-VUEs) 2019/02/09(土)01:45 ID:8aikkfMy0(2/3) AAS
C# の async, await を開発したのはこんな人。写真付き:

外部リンク:www.orioninc.com
601
(1): (スフッ Sd22-XlDt) 2019/02/09(土)01:49 ID:kYloXoqBd(1) AAS
>>599
一番確実なのは製品版のAcrobatを使うことではないでしょうか
602
(1): (ワッチョイ cd0c-feI+) 2019/02/09(土)01:49 ID:U3ljW3xz0(1/3) AAS
>>598
この流れでもう二回書かれてるけどawaitしないとその間メッセージキュー処理できないでしょ
あとTimer使えば済むロジックを自分で書かないの
603
(1): (ワッチョイ 9140-/WZR) 2019/02/09(土)01:55 ID:dvMZ7Shb0(2/3) AAS
>>601
私の技術力が低いので初心者用スレで質問させていただいたのですが、それを購入したとして初心者でもネットで調べる程度で可能ですか?
上に書いたiTextSharpとPDFBoxは、ネットに転がってたソースを丸パクリでやりました。
604
(1): (ワッチョイ bd5f-FtKs) 2019/02/09(土)02:16 ID:UMSUoHVI0(1/2) AAS
>>595
後者はTask.Run()が不要だから、むしろタイプ量は減るよ。

await Task.Run( () => { while (dt > DateTime.Now) Thread.Sleep(500); } );

while ( dt > DateTime.Now ) { await Task.Delay(500 ); }
605: (ワッチョイ cd0c-feI+) 2019/02/09(土)02:39 ID:U3ljW3xz0(2/3) AAS
ん? Task建ててる部分見てなかった、俺のレスのは忘れて
606: (ワッチョイ bd5f-FtKs) 2019/02/09(土)02:40 ID:UMSUoHVI0(2/2) AAS
後、細かいことを言うと、
Task.Run()でThread.Sleep()だとSleep()してる間もThreadPoolのThreadを1つ占有してしまうが、
Task.Delay()ならその間はThreadPoolのThreadが開放される。
607: (アウアウエー Sa0a-gVV1) 2019/02/09(土)02:47 ID:jhOjUKEBa(3/4) AAS
>>602
スリープするのはUIスレッドじゃないのでそれはありませんよw

これ、ちょっと前にも書いたけど、Timerを使った方が可読的になる場合ももちろんあるし、
そうでない場合もある。

つまり、別に車輪を再発明してるんじゃありません。

質問者がどっちのケースかは分からない
608: (アウアウエー Sa0a-gVV1) 2019/02/09(土)02:54 ID:jhOjUKEBa(4/4) AAS
>>604
ああ、なるほど。
正直非同期メソッドって書きなれてないから目からうろこ
609
(1): (ワッチョイ e247-XlDt) 2019/02/09(土)03:02 ID:zy9w8qc80(1/2) AAS
>>603
SDKは自由にダウンロードできるからドキュメント見て自分で判断しておくれ
外部リンク[html]:helpx.adobe.com
610: (ワッチョイ 412d-Ctdi) 2019/02/09(土)07:11 ID:Bzu1ndzH0(1/3) AAS
待つだけの処理で1スレッド消費しちゃうのは良くないな
かといって単純にAwaitを使っただけのコードだと、どこかでデッドロックが生まれる可能性が増えたり、待てずにメインスレッドが抜けてしまったりする危険が出てくる
ここはコルーチンしか無いでしょ!!コルーチン最高!!!!
611: (ワッチョイ 82ad-bIN/) 2019/02/09(土)07:16 ID:rkd3w/wq0(1) AAS
タスクスケジューラにしとけよ
612: (ワッチョイ 412d-Ctdi) 2019/02/09(土)07:35 ID:Bzu1ndzH0(2/3) AAS
タスクスケジューラはC#自体の機能じゃないからな、漢は黙ってコルーチン!!!
613: (ブーイモ MMf6-5dzK) 2019/02/09(土)07:42 ID:onf/I33CM(1/2) AAS
私、待つわ〜何時までも待つわ〜
例え対象スレッドが落ちていても〜
614
(1): (オッペケ Srd1-da9w) 2019/02/09(土)08:32 ID:6iVlgEPUr(1) AAS
>>594
それ非同期関係なくない?
615: (ワッチョイ 6e63-awc4) 2019/02/09(土)08:45 ID:O6W3Dl2k0(1/4) AAS
>>583
kotlinはそっくりそのままと言えるものではなく
奇怪な何かになってる
616: (ワッチョイ 6e63-awc4) 2019/02/09(土)08:47 ID:O6W3Dl2k0(2/4) AAS
>>614
次はWindowsが落ちることを想定しよう
617
(1): (ワッチョイ 86ef-gf/b) 2019/02/09(土)11:10 ID:YnD8XTKW0(1/3) AAS
c++はc#の何倍難しいですか?
618: (ブーイモ MMf6-5dzK) 2019/02/09(土)11:13 ID:onf/I33CM(2/2) AAS
C# → C++/MFC なら大して変わらないかも
619: (ワッチョイ 467d-4IkZ) 2019/02/09(土)11:13 ID:902JN4xl0(1) AAS
256バイ
620
(1): (ドコグロ MMca-/S9r) 2019/02/09(土)11:17 ID:k8PbCSORM(1) AAS
言うほど難しくはない
同じものを作るために3倍程度の工数がかかるだけ
621
(2): (ワッチョイ 86ef-gf/b) 2019/02/09(土)11:24 ID:YnD8XTKW0(2/3) AAS
個人で使うものではない感じですか?
openglを扱うためには裂けては通れないようですが
622: (ワッチョイ 6e7b-HWB1) 2019/02/09(土)11:31 ID:k4TwxJVN0(1) AAS
>>621
opengl c# でググったらいろいろヒットするが
DllImportがめんどくさいのはわかるが避けて通れない理由があるのか?
C++でやらなきゃって思うのならC++のスレへどうぞ
623
(1): (ワッチョイ 86ef-gf/b) 2019/02/09(土)11:35 ID:YnD8XTKW0(3/3) AAS
ラッパーのほうが情報すくなくて難しそうなので
624: (ワッチョイ cd0c-feI+) 2019/02/09(土)11:39 ID:U3ljW3xz0(3/3) AAS
>>621,623
> 個人で使うものではない感じですか?
個人で使うのになんら障害はない

> openglを扱うためには裂けては通れないようですが
OpenTKとかあるし別に必須じゃない

> ラッパーのほうが情報すくなくて難しそうなので
じゃあC++で学習すれば?
625
(1): (ワッチョイ 6e63-awc4) 2019/02/09(土)11:41 ID:O6W3Dl2k0(3/4) AAS
このレベルでOpenCVに手を出して何ができるんだって感じもある
チュートリアルを通してやるのがせいぜいか
626
(1): (ワッチョイ 912f-XlDt) 2019/02/09(土)12:15 ID:yiDYsHnZ0(1) AAS
>>625
OpenCVとOpenGLは別物だよ
627: (アウアウウー Sa05-BKX2) 2019/02/09(土)12:25 ID:6TG0Gkwea(1) AAS
>>617
テンプレートの深みにはまらなければC++のほうが素朴で簡単
628: (ワッチョイ 8dda-feI+) 2019/02/09(土)12:37 ID:PsW6cRYq0(1) AAS
この人3ヶ月前からこういう質問ばっかしてる
一体いつになったら手を動かすんだろう
629: (ワッチョイ 412d-Ctdi) 2019/02/09(土)13:27 ID:Bzu1ndzH0(3/3) AAS
やっぱコルーチンだわ
コルーチン質問がいくらあっても全くロックが起きとらん!スレッドを丸々潰してもいない!最強!!
630: (ワッチョイ 2d61-VUEs) 2019/02/09(土)14:30 ID:8aikkfMy0(3/3) AAS
>>620
そんなかからん。せいぜい 2割り増し程度。
でも、ブラックボックスが少なくて何やってるのか分かりやすいので、
はまりにくいかも。

C#のasync, awaitなんて初心者が理解できるものではない。
631: (ワッチョイ 6e63-awc4) 2019/02/09(土)14:37 ID:O6W3Dl2k0(4/4) AAS
>>626
ごめん
俺の目が悪かった
632: (ワッチョイ e247-XlDt) 2019/02/09(土)15:30 ID:zy9w8qc80(2/2) AAS
C#はクラスライブラリも簡単に逆アセンブルできるからブラックボックスは少ないよな
633: (ワッチョイ 9140-/WZR) 2019/02/09(土)16:47 ID:dvMZ7Shb0(3/3) AAS
>>609
ありがとうございます。
634
(1): (ワッチョイ 8261-VUEs) 2019/02/09(土)22:52 ID:5t5ZiBxh0(1/2) AAS
WPF, Windows Form の二種類があったり、Xamarineを使うかどうかが
あったり、C#も複雑極まりないんだね。GDI がセンスがない関数群だったので
嫌われたこと、MFCが汚かったこと、Direct3Dが汚かったこと、COMが
汚かったこと、ActiveX がさらに訳分からなかったこと、の再来を感じる。
「非同期処理」もスレッドをいくつでも起こすタイプや、Poolみたいな
ことをやるタイプ、以外にいくつもあって、さらに最後に async, await
が Synax Suger になっているんだね。なんという複雑さ・・・。
省2
635
(1): (ワッチョイ 8261-VUEs) 2019/02/09(土)22:54 ID:5t5ZiBxh0(2/2) AAS
結局、.Net Standard が破棄されて、.Net Core だけが残るといううわさを聞いた
けど、やっぱり Xamarine が捨てられていくのかな。買収時点で最初から
予想されたことだけど。
636: (スフッ Sd22-XlDt) 2019/02/09(土)22:59 ID:VPSQr41Ud(1) AAS
またC#嫌いのお前か
1-
あと 366 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.048s