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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 2317-qMUn)
垢版 |
2018/12/15(土) 11:07:07.89ID:0aSEF/I+0
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

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

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

■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part139
https://mevius.5ch.net/test/read.cgi/tech/1538646998/
■コードを貼る場合は↓を使いましょう。
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
2019/02/01(金) 03:22:41.97ID:V0cnsy7O0
質問する前にちょこっと作って見ればすぐ分かるのに
2019/02/01(金) 12:54:05.03ID:hIHuQnKx0
>>474
ありがとうございます
D3DKMTWaitForVerticalBlankEvent に渡す
D3DKMT_WAITFORVERTICALBLANKEVENT の
以下の3つはどのように取得すればよいのでしょうか
D3DKMT_HANDLE hAdapter;
D3DKMT_HANDLE hDevice;
D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
2019/02/01(金) 17:55:46.18ID:mF+gwDus0
var dicHoge = new Dictionary<string, string>();
dicHoge["Key"] = "hoge";

って、いきなり出来ちゃうんですか。
ダメと思って試しもしなかったです。
2019/02/01(金) 18:45:15.00ID:9eIyz51RM
System.Data.DataTable なんて使ったら悶絶しちゃうかもな
2019/02/01(金) 19:27:14.70ID:Lo/lI1+50
>>498
そのくらい自分でぐぐって調べろ
と突き放そうと思ったけど要望そのまんまのコードが出てきたのでまあええわ

https://github.com/fuse-open/fuse-studio/blob/master/Source/Fusion/Windows/VerticalSynchronization.cs

素直にIDXGIOutput::WaitForVBlank辺り使った方が良いと思うけどネ
2019/02/03(日) 12:37:02.16ID:ZxPovaO5M
>>495
俺も最近似たようなもんが欲しくなったときがある

・重複したときに別の処理が必要
・登録した順番が重要

ってときにDictionary自体使わんで
KeyValuePairのListばっかり使うようになった
つーのはログの出力まで出したいときに登録した順に出したいから
ログ出力するもんにはDictionary使わなくなった
2019/02/03(日) 15:42:40.54ID:jpAIKS8U0
ログ取ってるなら逆にDicで困らんと思うけど
2019/02/03(日) 15:49:56.24ID:IKDI2S7C0
>>503
入れたときじゃなくて別のタイミングで出したい
順番に保証がないと困る
って場面
2019/02/03(日) 15:58:01.30ID:7GVwTPrN0
ログ出力する時に並び替えるだけで済むのでは?
2019/02/03(日) 16:04:15.94ID:IKDI2S7C0
>>505
どうやって?
2019/02/03(日) 16:18:53.59ID:LOT7/zBp0
つかそれKeyは何なんだよ
それがキー項目である必要あるのか?
2019/02/03(日) 17:01:46.98ID:cLU3XamPa
>>504

dict[key] = value;
mySpecialLogger.Log($"dictに追加したぞ: {key}, {value}");

----

mySpecialLogger.Flush();
2019/02/03(日) 17:56:25.94ID:EhLznF4nM
SortedListやSortedDictionaryでいいだろ
2019/02/03(日) 19:21:16.88ID:ZOlWRYsg0
登録順ならOrderedDictionary
2019/02/04(月) 11:39:31.27ID:2YxD3k7B0
>>501
できました、ありがとうございました
IDXGIOutput::WaitForVBlankは呼び出すまでがよくわからないし
P/Invokeだけでできるのかもわからないのでやめておきます
2019/02/04(月) 13:36:44.96ID:AKeTBC2ia
ReadOnly=trueのテキストボックスをクリックしてしまった時に
フォーカス映ってカーソルがチカチカしないようにしたいのですがプロパティ上で設定できないのでしょうか?
2019/02/04(月) 13:48:21.68ID:B1LZYLJj0
GotFocusのたびにWindowsAPIのHideCaretの呼び出しが必要じゃないかな
2019/02/04(月) 14:07:22.27ID:/rUNKcNUa
>>512
コピーを想定してそうなってるので、TextBoxを使うならその仕様は買えない方がよいのでは。
コピーなんかできなくてもいいなら素直にLabelを使いましょう。
BorderStyleやBackColorをいじればTextBoxに近い外見にも出来る
2019/02/04(月) 15:54:30.95ID:AKeTBC2ia
テキストボックスの上に後付けでボタン配置したので、ポインタずれて押しそこなった時にそんな感じになってしまったのです
まあ動作的にはなんの問題もないのではあるけど>>513のイベントハンドラ作ってみます
ありがとうございました
2019/02/05(火) 08:55:05.54ID:3J1ruy+d0
rar5をオンメモリで解凍、ストリーム取得できるライブラリは無いですか?
2019/02/05(火) 10:59:50.41ID:svez8hxC0
>>516
sharpcompressでそれっぽいことできてるな

https://www.nuget.org/packages/sharpcompress
https://github.com/adamhathcock/sharpcompress/blob/master/tests/SharpCompress.Test/Rar/RarReaderTests.cs
2019/02/05(火) 11:07:59.15ID:svez8hxC0
すまんrar5は未対応みたいなこと言ってるわ
2019/02/05(火) 11:21:25.96ID:svez8hxC0
ほんならこっち
7z.dllのラッパー
https://www.nuget.org/packages/SevenZipExtractor/
https://github.com/adoconnection/SevenZipExtractor/blob/master/README.md
2019/02/05(火) 12:48:55.07ID:cT2SE72s0
web上の画像をダウンロードせずに
高さと幅を取得する方法があれば教えてください
2019/02/05(火) 13:03:57.50ID:GPC4C0Pm0
電話で聞く
2019/02/05(火) 13:37:05.03ID:RjbzZp8x0
>>520
先頭だけ取得して解析するくらいが関の山じゃない?
https://developer.mozilla.org/ja/docs/Web/HTTP/Range_requests
2019/02/05(火) 15:25:13.53ID:cT2SE72s0
>>522
ありがとうございました
2019/02/05(火) 15:40:50.37ID:3J1ruy+d0
>>519
回答ありがとうございます。

SevenZipExtractorですが、プロジェクトにNugetで取り込んでも正常に認識してくれず使えませんでした。
SharpCompressですが、(まだファイルの一覧だけしか試していませんが)RAR5での圧縮ファイルを扱えました。
SharpCompressは前に使っていたことがあるので(当時はRAR5が使えなかった)、こちらを使おうと思います。
2019/02/05(火) 17:04:13.00ID:CPjaAgWSM
vs2013なんですけど、バーコードを作るメジャーな方法って何があるでしょうか?無料がいいです。
2019/02/05(火) 17:23:07.87ID:jB1piIf60
無料ならGPLv3でもええんか
527デフォルトの名無しさん (アウウィフ FFa3-zGAl)
垢版 |
2019/02/05(火) 17:28:38.13ID:dQJUt0gZF
ライブラリいっぱいあるで
2019/02/05(火) 18:20:58.39ID:C5l7MRqld
>>525
メジャーなのはZXing
2019/02/05(火) 21:05:22.94ID:XsUhL+1b0
何かライブラリ無いかなと思ったらまずNuGet見てみる
2019/02/06(水) 12:34:37.03ID:ymLQaaTBd
C#で書いたコードをVBAから呼び出す際のC#でのやり方を教えてください。

例えば、MessageBoxで「Hello!」と表示するには何をどうすれば出来ますか?
使ってるのはVisualStudio2017です。
2019/02/06(水) 12:38:03.13ID:ymLQaaTBd
>>530
引数でHelloを持ちかえる方法です。
2019/02/06(水) 13:05:34.43ID:pq3DhSMgM
日本語でOK!
2019/02/06(水) 13:11:17.81ID:/72vyC150
>>530
ググレカス

C#で実装したコードをVBAとかVBから使う方法 : 実験ぶろぐ(仮)試供品
https://needtec.exblog.jp/21522702/
2019/02/06(水) 16:15:23.61ID:sqv9vum40
https://gist.github.com/katabamisan/5231237

上記サイトのIniFileクラスでBufferExpandingSizeを小さくしてから
GetSectionNamesを呼び出すとループ2回目のGetPrivateProfileString呼び出しのタイミングで
例外も発生せずにプログラムが異常終了してしまうのですが何が問題なんでしょうか?
2019/02/06(水) 18:20:24.61ID:ymLQaaTBd
>>533
書いてるコードの意味がよくわからないので単純なコードが知りたいんです。
2019/02/06(水) 18:30:37.80ID:1DcU3Gnhp
コードコピペして自分の使ってるクラスに直せば出来ると思うけど
インターフェース作ってなければクラスから作って置き換えればサンプルコード通りに動くはず
2019/02/06(水) 18:54:31.06ID:cXGNS95ra
>>535
C# メインルーチンからメッセージボックスを表示
VBA shellを使って↑を起動
2019/02/06(水) 21:20:24.24ID:SSakxrcH0
>>534
GetPrivateProfileStringの定義がCharSet.Unicode指定してるから
第5引数のnSizeはwchar_tの個数を指すことになる
wchar_tは2バイトだからnSizeに16指定したらlpReturnedStringは32バイトあることになる
でも実際にはその半分の16バイトしか確保してないから
GetPrivateProfileStringが17バイト目以降に書き込もうとしてヒープ破損する
2019/02/07(木) 10:39:20.42ID:BTY8+ybz0
>>538
文字セットのことがすっかり頭から抜けてました
WinAPIを使うなら真っ先に気を付けないといけない部分なのになあ

・ReAllocCoTaskMemで確保するサイズをlength*2に変更
・GetPrivateStringのCharSetをAnsiに変更、文字列への変換をPtrToStringAnsiに変更

上記2通りの修正でどちらも正常動作することが確認できました
回答ありがとうございました
2019/02/07(木) 18:21:29.96ID:yK9ubdQXd
VS2017使用。
ADOを使ってエクセルのシート名を読んだりセルのデータを読み取りたい。
対象エクセルブックは〇〇.xlsのみ

ネットのサンプルコードをコピペして使ってもエラーでさっぱりです。
何かインストールが必要なんですか?それとも参照設定とか必要なんですかね?

なんか雛形のコードでもあればいただけませんか?
2019/02/07(木) 19:01:48.27ID:l2uiBAtS0
具体的にどのサイトのコードを試したら
どんなエラーメッセージが出たのかを書いてくれ
2019/02/07(木) 19:28:54.09ID:yK9ubdQXd
https://qiita.com/OneK/items/c3077aea595635f40ee5
このサイトの下のコードです。

adp.Fill(dt);←ここでエラーです。

return dt;
}

今パソコンから離れたのでエラー内容は忘れましたが何かがないぞみたいな感じでした。
2019/02/07(木) 20:24:29.71ID:3NiqE0/P0
>>540
https://csharp.keicode.com/topics/how-to-use-exceldatareader.php
これじゃあかんの?
2019/02/07(木) 21:34:46.19ID:FLUWNW3J0
>>543
これも明日試してみます。
でもいろいろとコードの引き出しがあったらいいなって
2019/02/07(木) 21:37:56.26ID:FLUWNW3J0
>>543
速度はどうなんですか?早いですか?
2019/02/07(木) 22:02:28.76ID:O0GaOve00
>>545
ウゼェ、やる気がねーなら
エロゲでもやってろ
2019/02/07(木) 22:23:39.18ID:iyj2o48P0
こんばんはよければ教えてください
c#で社内用のソフトをしこしこ作っているものなのですが、同じ境遇の方ヘルプファイルはどの形式で
作っていますか? chmファイルは今時便利なツールもないので作りにくいのですが、pdfではなんか味気ない

今回新たなソフトを社内でリリースするので悩んでいます。

あ、ちっちゃい会社です。
2019/02/07(木) 22:28:55.73ID:CKGjxJfq0
もしかしてc#全く関係ない話?
2019/02/07(木) 22:35:04.98ID:VZhzokSX0
> pdfではなんか味気ない

その謎の価値観を改めればすべて解決です
2019/02/07(木) 23:39:26.83ID:Q7Nq6LQdd
>>547
sandcastleでchmやHTMLのヘルプを簡単に生成できるよ
2019/02/07(木) 23:40:23.99ID:Q7Nq6LQdd
>>548
C#のコメントからヘルプを生成する話だよ
2019/02/07(木) 23:47:55.01ID:O0GaOve00
doxygen的なのって新しいの出た?
2019/02/08(金) 00:00:34.72ID:JeOi55qM0
sandcastleなつかしい
2019/02/08(金) 00:09:17.11ID:yxq5pHtX0
>>553
今でもメンテしてる人いるし!
https://github.com/EWSoftware/SHFB
2019/02/08(金) 00:42:26.66ID:zMW+eOHy0
markdownで書いてhtml出力
2019/02/08(金) 00:59:36.44ID:wLiZux8Md
>>555
ソースコードから生成しないのは非効率でしょ
2019/02/08(金) 01:02:48.69ID:kZW3St4e0
ソースコードから設計書出すならわかるけど、今回の質問はヘルプファイルでしょ?
2019/02/08(金) 01:18:59.44ID:e7pcoQvna
社内ならConfluenceみたいなwiki的なサービス使えば?
ファイルで配ると後でメンテに苦労することになるよ
2019/02/08(金) 01:22:13.31ID:yxq5pHtX0
>>557
C#のスレなんだからヘルプと言えばクラスリファレンスだろ
2019/02/08(金) 01:45:40.32ID:NCJ1sppLp
ユーザー向けのヘルプファイルだろ
質問した本人出てこないから結論出ないけど
2019/02/08(金) 06:02:12.24ID:86VvLP3ma
簡単なゲーム作ってみたのだけど仮にこれを配布するとしたら
動作環境は何を基準にして明記したらいいのでしょうか

Windowsの人なら特になにか入れてもらわなくてもだいたい動くってことでしょうか
2019/02/08(金) 07:19:45.32ID:en2thcC6M
>>555に一票
俺はAsciiDocだけど
2019/02/08(金) 07:20:35.11ID:Weq4zX9xd
対処にした.netでしょう。

win7はデフォだと3.5
win8がデフォだと4.5
win10はデフォ4.6がはいってる。
win8とwin10は3.5系はデフォでは入ってない。
一般的には、4.5で作っておけばトラブルは少ない。
async awaitも使えるし、入ってることが期待できる。

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

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

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/media/navigationtrace.png
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/
2019/02/08(金) 18:11:51.00ID:JXgoNARF0
GUIちゅーてんだから普通にWinforms/WPFのTimer/DispatcherTimerを紹介すりゃええんでないの
数日間待機させたいとかになるとまた話が違ってくるしもうちょい質問の要件をハッキリさせて欲しいけど
2019/02/08(金) 18:25:10.33ID:ccTwL3cjM
指定日時後の起動はタスクスケジューラに任せた方が良いと思う
GIU側の仕事はスケジューラヘの登録と指定日時にスケジューラが起動したプロセスとの通信
2019/02/08(金) 18:28:22.25ID:xI0+6qTx0
C#も汚い言語になってきたなー
2019/02/08(金) 18:32:16.25ID:xI0+6qTx0
なんか、JavaScript そっくりになってきる。JavaScript は汚いのにな・・・。
2019/02/08(金) 18:49:11.69ID:5c9t7/Awd
汚いとは?
2019/02/08(金) 18:56:00.90ID:wLzz2paeM
JavaScriptそっくりもクソも、JavaScriptのasync/awaitはC#が発祥だぞ
それをJavaScriptもPythonもKotlinもそっくりそのまま真似した
汚い機能だと感じる君の感覚は否定しないが、好みは別にして非同期プログラミングのデファクトスタンダードであるのは事実だ
2019/02/08(金) 19:49:11.94ID:lL88DpXz0
割り込んですまない。
SolrNet を使ったことあるヤツがいたら知恵を貸して欲しい。

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

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

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

原因がわからなくてしばらく悩んで、GitHub にあるサンプルコードをダウンロードしてきてコピペしても同じだったのだが、
ダウンロードしたソリューションをビルドして実行するとこの部分を問題なく通過する。
またしばらく悩んで、nuget でダウンロードしてくる SolrNet のバージョンに違いがあることに気がついた。
どうやらバージョンが 0.5 以下だと通過し、それ以降のバージョンだとヌルポエラーになるようだ。

最新のは 1.0.1 だったか、このバージョンで上の部分を通過させるに必要な事はなんだろう。心当たりがあったら教えて欲しい。
0.5 の辺りって、その辺りを境に他のパッケージを参照するようになってるぽいのだけど関係があるだろうか。
これを使えってご指定なんだよな。。
2019/02/08(金) 20:41:31.54ID:OM4aCJGta
>>568
一応これでできるけど、これがベストかどうかは知らん
private static async Task WaitTillAsync(DateTime dt)
{
  var now = DateTime.Now;
  var span = dt > now ? dt - now : TimeSpan.Zero;
  await Task.Delay(span);
}

private async void button1_Click(object sender, EventArgs e)
{
  await WaitTillAsync(DateTime.Now.AddSeconds(10));
  MessageBox.Show("10秒後にこんにちは");
}

>>566
マジですかw
2019/02/08(金) 21:46:41.47ID:tTA+g4g80
>>585
それだとNTPで時計合わせが発生したらズレる
素直にSystem.Timers.Timerで500ms位ごとにElapsedさせて、
指定時刻を過ぎてないか見るのが簡単。

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

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

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

に文字数が増えて、使うTaskも増えて、かといってメリット無いような気が
2019/02/09(土) 00:46:47.47ID:3dJvh84X0
await, async は、簡単なことを難しくしてしまう。
2019/02/09(土) 00:52:22.81ID:8aikkfMy0
C#は、もはや、C++やCとは似ても似つかなくなってしまってる。
control flow がめちゃくちゃ複雑で、何をやってるのかわからなくて
生ポインタの1,000倍危険。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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