!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part147
http://mevius.5ch.net/test/read.cgi/tech/1582100741/
■関連スレ
C#, C♯, C#相談室 Part94
http://mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
・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
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
ふらっと C#,C♯,C#(初心者用) Part148
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ df89-moxv)
2020/05/27(水) 20:28:41.27ID:Pggemlyq0301デフォルトの名無しさん (スププ Sd32-mh94)
2020/09/27(日) 19:28:51.84ID:0F2CG6otd302296 (ワッチョイ 4b2c-ozis)
2020/09/28(月) 02:24:40.60ID:QIpyCS2B0 JavaScript が難しいのは、非同期が基本だから。
コンテキスト・文脈が異なる。
時間の進み方が異なる世界で、同期を取らないといけないから
Ruby が簡単なのは、同期が基本だから。
非同期の方がオプション
Android, Electron がややこしいのも、2つの文脈の同期を取る必要があるから。
1つのアプリ内に、GUI・非GUI の文脈がある
例えば、Electronなら、Main は、Node.js のCUI スレッドで、
Renderer は、GUI のChromium スレッド
双方は、決められた書き方をしないと、同期・通信できない
コンテキスト・文脈が異なる。
時間の進み方が異なる世界で、同期を取らないといけないから
Ruby が簡単なのは、同期が基本だから。
非同期の方がオプション
Android, Electron がややこしいのも、2つの文脈の同期を取る必要があるから。
1つのアプリ内に、GUI・非GUI の文脈がある
例えば、Electronなら、Main は、Node.js のCUI スレッドで、
Renderer は、GUI のChromium スレッド
双方は、決められた書き方をしないと、同期・通信できない
303デフォルトの名無しさん (ワッチョイ 1201-nSIs)
2020/09/28(月) 06:18:20.07ID:ii9XSMYC0 >>290です
>>296
コンテキスト・文脈という概念がまだ把握できてないのでそこが課題だと思ってます
>>298
自分は独習C#という本をテキストにして勉強しています。
その中で、>>291のAと似たコードが記載されていて、
これを使ってasync/awaitの基礎が説明されています。
そこで、フォームアプリで真似してみたんです。
デッドロックについてはいろいろ調べてみて基本的な理屈は理解できました。
ただ、Aのコンソールアプリでデッドロックが起きない理由がわかりません。
コンソールアプリはループスレッドではないからとのご指摘が重要だと思っていますが
まだ理解が浅くてモヤモヤしてます。
あと、
>まず、async指定されたメソッドは呼び出されるとメソッド全体を別スレッドとして
起動して・・・
の下りですが、スレッドが3つあると考えればいいのでしょうか?
a.STAスレッド(2のスレッドを呼び出したスレッド)
b.async指定されたメソッドを処理するスレッド
c.client.GetStringAsync(url)を処理するスレッド
これはAのコンソールアプリでも同じですか?
bについては独習C#には書かれていなかったので
aとbは同じスレッドだと思い込んでいました。
調べてみてよく分かったのですが、理解できていない概念が多すぎますね。
今の時点で安易に触ってしまうと変に誤った先入観を持ってしまいそうです
この辺をわかりやすくしっかり説明している書籍等、ご存じないでしょうか?
結論としては
基本的にフォームアプリの中でWaitを使うな
使いたいならConfigureAwait(false)で回避しろ
ということなのかなと思っています
>>296
コンテキスト・文脈という概念がまだ把握できてないのでそこが課題だと思ってます
>>298
自分は独習C#という本をテキストにして勉強しています。
その中で、>>291のAと似たコードが記載されていて、
これを使ってasync/awaitの基礎が説明されています。
そこで、フォームアプリで真似してみたんです。
デッドロックについてはいろいろ調べてみて基本的な理屈は理解できました。
ただ、Aのコンソールアプリでデッドロックが起きない理由がわかりません。
コンソールアプリはループスレッドではないからとのご指摘が重要だと思っていますが
まだ理解が浅くてモヤモヤしてます。
あと、
>まず、async指定されたメソッドは呼び出されるとメソッド全体を別スレッドとして
起動して・・・
の下りですが、スレッドが3つあると考えればいいのでしょうか?
a.STAスレッド(2のスレッドを呼び出したスレッド)
b.async指定されたメソッドを処理するスレッド
c.client.GetStringAsync(url)を処理するスレッド
これはAのコンソールアプリでも同じですか?
bについては独習C#には書かれていなかったので
aとbは同じスレッドだと思い込んでいました。
調べてみてよく分かったのですが、理解できていない概念が多すぎますね。
今の時点で安易に触ってしまうと変に誤った先入観を持ってしまいそうです
この辺をわかりやすくしっかり説明している書籍等、ご存じないでしょうか?
結論としては
基本的にフォームアプリの中でWaitを使うな
使いたいならConfigureAwait(false)で回避しろ
ということなのかなと思っています
304デフォルトの名無しさん (ワッチョイ 1201-nSIs)
2020/09/28(月) 07:01:50.95ID:ii9XSMYC0305デフォルトの名無しさん (ワッチョイ 12ad-LNaZ)
2020/09/28(月) 07:59:26.50ID:nO4ceNb30 すいません入門書に以下のコードがあるんですが実行してもピクチャーが真っ白で変になってるんですが
何が間違ってるんでしょうか;
https://gyazo.com/de388825132a1ac42b21b7cbb8a069fd
画像を置いてる場所はここです
https://gyazo.com/93530ea51ef1e88cbcd097846d409ca4
何が間違ってるんでしょうか;
https://gyazo.com/de388825132a1ac42b21b7cbb8a069fd
画像を置いてる場所はここです
https://gyazo.com/93530ea51ef1e88cbcd097846d409ca4
306デフォルトの名無しさん (ワッチョイ 16f2-9JDv)
2020/09/28(月) 08:35:58.50ID:lkQsRi/q0 表示したい画像はどんな内容なんですか?
307296 (ワッチョイ 4b2c-ozis)
2020/09/28(月) 08:52:18.25ID:QIpyCS2B0 >>303
コンテキスト・文脈が異なるとは、全く別世界・異次元。
時間の進み方も異なるし、全く感知できない。
通信・同期もできない
未定義の動作と同じ。
あらゆる仮定・推測ができない
だから、双方が連絡するには、特別な書き方をしないといけない
普通の言語では、例外も補足できない。
他方で例外を投げても、伝わらない
だから、ストールするのは、文脈が異なる場所で、例外が起こっている可能性もある。
起こっていても分からないから
本を買うよりも、検索して調べた方がよい。
こういう説明が載ってる本は、まずない。
余程、マニアックな本だけだろう
コンテキスト・文脈が異なるとは、全く別世界・異次元。
時間の進み方も異なるし、全く感知できない。
通信・同期もできない
未定義の動作と同じ。
あらゆる仮定・推測ができない
だから、双方が連絡するには、特別な書き方をしないといけない
普通の言語では、例外も補足できない。
他方で例外を投げても、伝わらない
だから、ストールするのは、文脈が異なる場所で、例外が起こっている可能性もある。
起こっていても分からないから
本を買うよりも、検索して調べた方がよい。
こういう説明が載ってる本は、まずない。
余程、マニアックな本だけだろう
308デフォルトの名無しさん (ワッチョイ f7b2-b+lb)
2020/09/28(月) 08:53:38.64ID:phqY8Xtx0 FormのControlsに追加しなくてもいいんだっけ?
309デフォルトの名無しさん (ワッチョイ 2f33-EUyz)
2020/09/28(月) 08:59:13.21ID:Zg0P7tB00 >>303
C#による マルチコアのための非同期/並列処理プログラミング
ttps://gihyo.jp/book/2013/978-4-7741-5828-0
C#によるWindowsシステムプログラミング 第2版
ttp://www.cutt.co.jp/book/978-4-87783-468-5.html
この2冊しかしらん
もっといいのを知ってる人いたらよろしく
C#による マルチコアのための非同期/並列処理プログラミング
ttps://gihyo.jp/book/2013/978-4-7741-5828-0
C#によるWindowsシステムプログラミング 第2版
ttp://www.cutt.co.jp/book/978-4-87783-468-5.html
この2冊しかしらん
もっといいのを知ってる人いたらよろしく
310296 (ワッチョイ 4b2c-ozis)
2020/09/28(月) 09:04:53.56ID:QIpyCS2B0 確かに、GUI の根幹には、永久のイベント(メッセージ)ループがある。
イベントドリブン
ずっと、ユーザーからのマウスイベントなどが、キューに入るのを待っている。
キューにイベントが入ると、それを処理する。
それを永久に続ける
一方、CUI では、そういうイベントドリブンは聞かない。
マウス操作で、何かをするというのも聞かない。
Ctrl + C を押して、割り込み処理を発生させることはできるが
でも、こういうアプリの終了などのソフトウェア割り込みも、イベントループで拾うけど
イベントドリブン
ずっと、ユーザーからのマウスイベントなどが、キューに入るのを待っている。
キューにイベントが入ると、それを処理する。
それを永久に続ける
一方、CUI では、そういうイベントドリブンは聞かない。
マウス操作で、何かをするというのも聞かない。
Ctrl + C を押して、割り込み処理を発生させることはできるが
でも、こういうアプリの終了などのソフトウェア割り込みも、イベントループで拾うけど
311296 (ワッチョイ 4b2c-ozis)
2020/09/28(月) 09:08:06.54ID:QIpyCS2B0 そんな難しい本を読んでも、理解できないから無駄だと思う
検索した方がよい
検索した方がよい
312デフォルトの名無しさん (ワッチョイ 2f33-EUyz)
2020/09/28(月) 09:11:10.60ID:Zg0P7tB00 >>305
用意した画像の一部だけが表示されている
たとえば、
pb.SizeMode = PictureBoxSizeMode.StretchImage;
といった感じでPictureBoxSizeModeを指定してみると何が起こってるのか何となくわかるんじゃね?
用意した画像の一部だけが表示されている
たとえば、
pb.SizeMode = PictureBoxSizeMode.StretchImage;
といった感じでPictureBoxSizeModeを指定してみると何が起こってるのか何となくわかるんじゃね?
313デフォルトの名無しさん (アウアウウー Sa43-Vzxq)
2020/09/28(月) 09:42:36.85ID:Uql71HHWa >>310
ctl+Cまで入力コマンドを待つCUIアプリはイベントドリブンと呼べるのでは?
ctl+Cまで入力コマンドを待つCUIアプリはイベントドリブンと呼べるのでは?
314デフォルトの名無しさん (ワッチョイ 9fad-D1lY)
2020/09/28(月) 09:50:37.80ID:o994bwz+0 >>310
CUIでもターミナルベースの業務アプリなんかだとイベントループ書くぞ。
CUIでもターミナルベースの業務アプリなんかだとイベントループ書くぞ。
315296 (ワッチョイ 4b2c-ozis)
2020/09/28(月) 10:20:17.53ID:QIpyCS2B0 結局、GUI・CUI も、どちらもイベントドリブンなのか
大部分は同じなのかも
大部分は同じなのかも
316デフォルトの名無しさん (ワッチョイ 9fad-D1lY)
2020/09/28(月) 10:59:03.73ID:o994bwz+0317デフォルトの名無しさん (ワッチョイ b302-S0Wo)
2020/09/28(月) 11:27:34.04ID:j++FlVxl0 Delphiに存在したメタクラス型(クラス型を代入、参照できる変数)は
C#に無いの?
C#に無いの?
318デフォルトの名無しさん (ワッチョイ 1201-nSIs)
2020/09/28(月) 11:42:34.18ID:ii9XSMYC0319デフォルトの名無しさん (ワッチョイ f7b2-b+lb)
2020/09/28(月) 11:53:52.45ID:phqY8Xtx0 >>317
Typeは?
Typeは?
320デフォルトの名無しさん (ワッチョイ b302-S0Wo)
2020/09/28(月) 13:53:50.99ID:j++FlVxl0 Typeでもある程度事は足りるけど、
あらゆる型のtypeof()を代入できるので不確実だし、Activatorとか必要で面倒。
無いなら仕方ないが…まあ移植が大変
あらゆる型のtypeof()を代入できるので不確実だし、Activatorとか必要で面倒。
無いなら仕方ないが…まあ移植が大変
321デフォルトの名無しさん (ワッチョイ 12ad-LNaZ)
2020/09/28(月) 18:57:37.61ID:nO4ceNb30322デフォルトの名無しさん (ワッチョイ 4bda-tH1f)
2020/09/28(月) 22:54:29.00ID:iemn9XLz0 >>310
CUIなRTOSなんて普通にあるけどなぁ
CUIなRTOSなんて普通にあるけどなぁ
323デフォルトの名無しさん (ワッチョイ ca4a-E04M)
2020/10/10(土) 10:58:06.91ID:RvE6O+PE0 .NET Coreでコンソール画面に
「こんにちは、WORLD!」と表示させようとすると
なぜか「こんにちは、WORL!」のように表示されます
コンソール画面のメニューからフォントを変更すると正しく表示されますが原因が分かりません
「こんにちは、WORLD!」と表示させようとすると
なぜか「こんにちは、WORL!」のように表示されます
コンソール画面のメニューからフォントを変更すると正しく表示されますが原因が分かりません
324デフォルトの名無しさん (ワッチョイ 4aad-Hns0)
2020/10/10(土) 11:22:49.95ID:OZkIKLkD0 コンソール画面とは?
325デフォルトの名無しさん (ワッチョイ af78-xYNh)
2020/10/10(土) 12:42:00.94ID:YPdRC9Oi0 >>323
コード貼れ
コード貼れ
326デフォルトの名無しさん (ワッチョイ ca4a-E04M)
2020/10/10(土) 13:17:16.07ID:RvE6O+PE0 static void Main(string[] args)
{
var str = "こんにちは、WORLD!";
Console.WriteLine("{0}", str);
Console.ReadKey();
}
{
var str = "こんにちは、WORLD!";
Console.WriteLine("{0}", str);
Console.ReadKey();
}
327デフォルトの名無しさん (ワッチョイ b301-xYNh)
2020/10/10(土) 17:53:06.91ID:wYCx593I0328デフォルトの名無しさん (ワッチョイ b301-xYNh)
2020/10/10(土) 17:57:00.27ID:wYCx593I0329323 326 (ワッチョイ ca4a-E04M)
2020/10/10(土) 19:40:42.12ID:RvE6O+PE0330デフォルトの名無しさん (ワッチョイ b301-xYNh)
2020/10/10(土) 20:03:24.77ID:wYCx593I0 >>329
こちらでは正常なんでコンソール画面のプロパティの設定がおかしいんでは?
こちらでは正常なんでコンソール画面のプロパティの設定がおかしいんでは?
331蟻人間 ◆T6xkBnTXz7B0 (スププ Sdea-2Jw8)
2020/10/10(土) 20:04:01.51ID:c6WyhNHPd 何てフォント?
332デフォルトの名無しさん (ワッチョイ ca4a-E04M)
2020/10/10(土) 20:23:39.28ID:RvE6O+PE0 MSゴシックの18ポイント、Windows8.1です
来週会社のパソコンで試してみることにします
来週会社のパソコンで試してみることにします
333デフォルトの名無しさん (ワッチョイ b301-xYNh)
2020/10/10(土) 20:41:27.03ID:wYCx593I0 >>332
8.1はプロパティでレガシーコンソールのチェックある?あったらそれチェックでいけるんでは?
8.1はプロパティでレガシーコンソールのチェックある?あったらそれチェックでいけるんでは?
334デフォルトの名無しさん (ワッチョイ ca4a-E04M)
2020/10/10(土) 20:52:24.98ID:RvE6O+PE0 ないです
335デフォルトの名無しさん (アウアウウー Sa2f-DH51)
2020/10/10(土) 21:17:43.96ID:RlZbVDXEa 何にもアドバイスできないのに恐縮だけど、
>コンソール画面のメニューからフォントを変更すると正しく表示されますが
だったら具体的にどのフォントで問題が発生してどのフォントで発生しないか
確認した範囲で書いた方がいいのでは
あと、普通テキスト変えていろいろ試さないか?
>コンソール画面のメニューからフォントを変更すると正しく表示されますが
だったら具体的にどのフォントで問題が発生してどのフォントで発生しないか
確認した範囲で書いた方がいいのでは
あと、普通テキスト変えていろいろ試さないか?
336デフォルトの名無しさん (ワッチョイ b301-xYNh)
2020/10/10(土) 21:50:46.82ID:wYCx593I0 他のアプリでMSゴシックの18ポイント使ってみ。フォントのファイルが正常かどうか
使えるなら8.1のコンソールウィンドウの問題でしょ
使えるなら8.1のコンソールウィンドウの問題でしょ
337デフォルトの名無しさん (ワッチョイ 1b02-tHo0)
2020/10/10(土) 23:23:35.42ID:wgBcrtZd0338デフォルトの名無しさん (ワッチョイ 5b49-fMdf)
2020/10/20(火) 10:49:57.27ID:N2Y7+9Dy0 ローカルでiTextSharpを利用して、
Json形式のデータからPDF帳票を作る・・てのつくったんだが、
(サーバ上で、APIコールとかファイル読込でPDFファイルを返したかった。
イメージ的にはページごとにTextとかLineを指定したJsonデータ)
いざ業務に転用できるかなってフェーズにきて
iTextSharpのライセンス(AGPL)がやだなあ、って思ってる。
PDFSharpは日本語がなんかうまくいかない。
今のC#で、PDFを作るの、皆さんはどうやってる?
Json形式のデータからPDF帳票を作る・・てのつくったんだが、
(サーバ上で、APIコールとかファイル読込でPDFファイルを返したかった。
イメージ的にはページごとにTextとかLineを指定したJsonデータ)
いざ業務に転用できるかなってフェーズにきて
iTextSharpのライセンス(AGPL)がやだなあ、って思ってる。
PDFSharpは日本語がなんかうまくいかない。
今のC#で、PDFを作るの、皆さんはどうやってる?
339デフォルトの名無しさん (ワッチョイ 9fad-3SP/)
2020/10/20(火) 10:55:16.27ID:0/xBmjm30 >>338
業務だったらExcelCreator使ってる
業務だったらExcelCreator使ってる
340デフォルトの名無しさん (ワイーワ2 FF3f-Vszw)
2020/10/20(火) 10:59:00.80ID:pHiz9StDF PDFSharp使ってるけど問題無し
341デフォルトの名無しさん (アウアウエー Sa3f-EbeN)
2020/10/20(火) 11:10:22.94ID:d69BLAaZa React、Vueで帳票レンダリング
ヘッドレスブラウザでPDF印刷
ヘッドレスブラウザでPDF印刷
342デフォルトの名無しさん (ワイーワ2 FF3f-Vszw)
2020/10/20(火) 11:13:59.21ID:pHiz9StDF 日本語不安ならグラフィック直接PDFに張り付けろ
343デフォルトの名無しさん (ワッチョイ bbad-6ryY)
2020/10/20(火) 12:28:25.89ID:eHl8PxCr0 PDFSharpは日本語の折り返しに対応してなかったぞ。
344デフォルトの名無しさん (ワイーワ2 FF3f-Vszw)
2020/10/20(火) 12:50:06.87ID:pHiz9StDF >Json形式のデータからPDF帳票を作る
これが折り返しするかどうかだな
これが折り返しするかどうかだな
345デフォルトの名無しさん (ワッチョイ 5b49-fMdf)
2020/10/20(火) 13:46:22.13ID:N2Y7+9Dy0346デフォルトの名無しさん (アウアウエー Sa3f-EbeN)
2020/10/20(火) 13:50:07.09ID:d69BLAaZa347デフォルトの名無しさん (ワッチョイ 9fad-3SP/)
2020/10/20(火) 14:00:01.34ID:0/xBmjm30348デフォルトの名無しさん (ワッチョイ 5b49-fMdf)
2020/10/20(火) 15:28:40.52ID:N2Y7+9Dy0349デフォルトの名無しさん (ワッチョイ ef02-pZTf)
2020/10/20(火) 16:09:37.19ID:CqCKSidt0 C♯が現在最強言語らしいので勉強したいのですが
マイクロソフトはVB6の開発を打ち切ってプログラマを裏切った過去があるそうで
なかなか踏み切れずにいます。。。
C♯は20年後も開発が続いてると思いますか?
教えてエロい人
マイクロソフトはVB6の開発を打ち切ってプログラマを裏切った過去があるそうで
なかなか踏み切れずにいます。。。
C♯は20年後も開発が続いてると思いますか?
教えてエロい人
350デフォルトの名無しさん (スップ Sdbf-H+yj)
2020/10/20(火) 16:14:23.52ID:Nb9oJ8Mwd そんな先のことなんざわからん
確実に言えるのは今勉強している技術を20年後も変わらずに使い続ける前提でいるような技術者は居ない(と信じたい)
生き残ってるなら初期学習がない分少し楽かもしれないけど、新しいのが台頭してくりゃそちらを新たに学習するだけ
確実に言えるのは今勉強している技術を20年後も変わらずに使い続ける前提でいるような技術者は居ない(と信じたい)
生き残ってるなら初期学習がない分少し楽かもしれないけど、新しいのが台頭してくりゃそちらを新たに学習するだけ
351デフォルトの名無しさん (ワッチョイ ef02-pZTf)
2020/10/20(火) 16:25:01.94ID:CqCKSidt0 そうですか。先のことは誰にもわからないですよね。
逆に20年後も確実に主力な言語ってPythonくらいかな?
逆に20年後も確実に主力な言語ってPythonくらいかな?
352デフォルトの名無しさん (ワッチョイ 6b01-fMdf)
2020/10/20(火) 16:25:26.41ID:cR623l/E0 >>349
開発が続いてる言語の新しい技術についていくような人はどんな言語でもすぐ学べる
開発が続いてる言語の新しい技術についていくような人はどんな言語でもすぐ学べる
353デフォルトの名無しさん (ワッチョイ ef02-pZTf)
2020/10/20(火) 16:31:38.91ID:CqCKSidt0354デフォルトの名無しさん (ワッチョイ 9fad-3SP/)
2020/10/20(火) 16:45:13.07ID:0/xBmjm30 C#ほど後方互換性を重要視している言語ってなかなかないと思うけどね
355デフォルトの名無しさん (ワッチョイ ef02-pZTf)
2020/10/20(火) 16:48:10.12ID:CqCKSidt0356デフォルトの名無しさん (アウアウウー Sacf-0T0S)
2020/10/20(火) 17:16:01.37ID:nipGGPAZa357デフォルトの名無しさん (アウアウウー Sacf-Gzvz)
2020/10/20(火) 18:10:04.06ID:kSL2D2eBa OfficeのマクロはまだVBなんだっけ?
358デフォルトの名無しさん (スップ Sdbf-H+yj)
2020/10/20(火) 18:13:11.84ID:Nb9oJ8Mwd そだね
python使えるようにするみたいな話はあったけど進行してるのかな?
python使えるようにするみたいな話はあったけど進行してるのかな?
359デフォルトの名無しさん (ワッチョイ fb0c-lr1q)
2020/10/20(火) 18:15:13.55ID:ATqqkPAW0 >python使えるようにするみたいな話
頓挫したぞ
頓挫したぞ
360デフォルトの名無しさん (スプッッ Sdbf-1poc)
2020/10/20(火) 19:53:46.10ID:c2x7XoZLd 贅沢言わないから.NETにpython入れてVisualStudio(codeじゃない方)でサポートしてくれるだけでいいのに
361デフォルトの名無しさん (ワッチョイ ab5f-UsEC)
2020/10/20(火) 21:29:38.81ID:j1S9Ds0j0 それIronPythonと何が違うの?
362デフォルトの名無しさん (ワッチョイ 9f01-ArIQ)
2020/10/20(火) 21:48:49.93ID:iUu5GsdY0363デフォルトの名無しさん (ワッチョイ 9f42-lr1q)
2020/10/20(火) 22:16:42.30ID:jgnvePEX0 ChromeベースのWebView2がやっとラウンチしたようだね。まだ.netじゃ使えないが
Previewで確認したところマウスの戻るボタンが使えるのがいい所だな
Previewで確認したところマウスの戻るボタンが使えるのがいい所だな
364デフォルトの名無しさん (アウアウウー Sacf-Gzvz)
2020/10/20(火) 22:51:38.52ID:kSL2D2eBa >>362
へーそれは知らんかったありがと。
へーそれは知らんかったありがと。
365デフォルトの名無しさん (ワッチョイ ef02-pZTf)
2020/10/20(火) 23:36:15.59ID:CqCKSidt0366デフォルトの名無しさん (ワッチョイ 65e4-xMNm)
2020/10/21(水) 00:36:52.32ID:0KDGF23Y0 なんかうろ覚えなんだが
こういう非同期処理の書き方ってちゃんと動いたっけ?
if(!locked){
locked = true;
await xxx.Task;
locked = false;
}
async/awaitは同じスレッドに戻るからこんな単純なロックでも問題無いって昔判断したような記憶はある
こういう非同期処理の書き方ってちゃんと動いたっけ?
if(!locked){
locked = true;
await xxx.Task;
locked = false;
}
async/awaitは同じスレッドに戻るからこんな単純なロックでも問題無いって昔判断したような記憶はある
367デフォルトの名無しさん (ワッチョイ c6de-qdaq)
2020/10/21(水) 09:14:18.23ID:hl6LkBs90 ソースの一行単位でスキがうまれるので無理じゃね
ifとlocked=trueの間に実行されてる
ifとlocked=trueの間に実行されてる
368デフォルトの名無しさん (ワッチョイ c6de-qdaq)
2020/10/21(水) 09:16:03.92ID:hl6LkBs90 1行単位どころじゃなかった
意味不明なところでも割り込みあるわw
意味不明なところでも割り込みあるわw
369デフォルトの名無しさん (JP 0H22-pYMh)
2020/10/21(水) 09:43:40.30ID:eNSg6QZpH 四捨五入の結果がおかしいのって自分だけかな・・・
decimal v = -0.0195m;
decimal rounded = Math.Round(v, 2, MidpointRounding.ToPositiveInfinity);
Console.WriteLine(rounded);
ってすると、小数点2桁までになるよう(小数点3桁目を)四捨五入するので
-0.02になるはずなのに、結果が-0.01になっちゃうんですけど・・・
decimal v = -0.0195m;
decimal rounded = Math.Round(v, 2, MidpointRounding.ToPositiveInfinity);
Console.WriteLine(rounded);
ってすると、小数点2桁までになるよう(小数点3桁目を)四捨五入するので
-0.02になるはずなのに、結果が-0.01になっちゃうんですけど・・・
370デフォルトの名無しさん (ワッチョイ c201-45kF)
2020/10/21(水) 09:56:42.42ID:lxmGvu010371デフォルトの名無しさん (ワッチョイ 1d1a-8DiG)
2020/10/21(水) 12:02:28.19ID:sg7OOy0L0372デフォルトの名無しさん (ワッチョイ c6de-qdaq)
2020/10/21(水) 12:16:57.36ID:hl6LkBs90 >>371
いや
if(!locked){
実行
別タスクlockedのfalseを見て処理開始
locked = true;
別タスク割り込まれたら困る処理開始
await xxx.Task;←別タスクと衝突
locked = false;
}
起こるじゃん
いや
if(!locked){
実行
別タスクlockedのfalseを見て処理開始
locked = true;
別タスク割り込まれたら困る処理開始
await xxx.Task;←別タスクと衝突
locked = false;
}
起こるじゃん
373デフォルトの名無しさん (JP 0H22-pYMh)
2020/10/21(水) 13:03:41.62ID:eNSg6QZpH >>371
-0.01と-0.02の中間(MidPoint)である-0.015のときの丸め方(Rounding)として
「MidpointRounding.ToPositiveInfinity」を指定したつもりだったのですが・・・
MidPointじゃないときにも「ToPositiveInfinity」が適用されちゃうんですね・・・
JavaScriptのMath.Round()とおなじような(四捨五入される桁の数字が5の場合に
正の無限大の方向で丸める)四捨五入をしたかっただけなのですが、
関数を自作しないとだめみたいなので自作します。
お騒がせしました。
-0.01と-0.02の中間(MidPoint)である-0.015のときの丸め方(Rounding)として
「MidpointRounding.ToPositiveInfinity」を指定したつもりだったのですが・・・
MidPointじゃないときにも「ToPositiveInfinity」が適用されちゃうんですね・・・
JavaScriptのMath.Round()とおなじような(四捨五入される桁の数字が5の場合に
正の無限大の方向で丸める)四捨五入をしたかっただけなのですが、
関数を自作しないとだめみたいなので自作します。
お騒がせしました。
374デフォルトの名無しさん (ワッチョイ 8242-gGz3)
2020/10/21(水) 13:30:40.39ID:UaTtUbsy0 await絡みのときは、排他制御はSemaphoreSlim使うのが定番ですよ
https://www.atmarkit.co.jp/ait/articles/1411/11/news117.html
https://www.atmarkit.co.jp/ait/articles/1411/11/news117.html
375デフォルトの名無しさん (アウアウウー Sa45-PQnC)
2020/10/21(水) 13:44:12.17ID:RtxzEAIBa 四捨五入:わかる
銀行丸め:わかる
正の無限大の方向で丸める:何の意味があんのそれ?
銀行丸め:わかる
正の無限大の方向で丸める:何の意味があんのそれ?
376デフォルトの名無しさん (テテンテンテン MMe6-K3fn)
2020/10/21(水) 13:52:03.73ID:xBoANC0iM 切り上げって知ってる?
377デフォルトの名無しさん (ワッチョイ 1d1a-8DiG)
2020/10/21(水) 14:15:10.32ID:sg7OOy0L0 >>373
それならこんな感じで簡単に作れるから頑張れ
static decimal[] table = new decimal[]{1E0m, 1E1m, 1E2m, 1E3m, 1E4m};
static decimal Round(decimal num, int pow) => Decimal.Floor((num * table[pow]) + 0.5m) / table[pow];
decimal num = Round(-0.015m, 2); // -0.01
>>372
普通にメインスレッドから叩いていればこうなるからな
if(!locked){ // thread 1
locked = true; // thread 1
await xxx.Task; // thread 2
locked = false; // thread 1
}
それならこんな感じで簡単に作れるから頑張れ
static decimal[] table = new decimal[]{1E0m, 1E1m, 1E2m, 1E3m, 1E4m};
static decimal Round(decimal num, int pow) => Decimal.Floor((num * table[pow]) + 0.5m) / table[pow];
decimal num = Round(-0.015m, 2); // -0.01
>>372
普通にメインスレッドから叩いていればこうなるからな
if(!locked){ // thread 1
locked = true; // thread 1
await xxx.Task; // thread 2
locked = false; // thread 1
}
378デフォルトの名無しさん (スップ Sd02-UPmx)
2020/10/21(水) 14:19:07.15ID:lJjSrE40d 正負どっち方向に動くかわかんない変換より確実に方向がわかっている変換が必要なことはあるよ
379デフォルトの名無しさん (アウアウウー Sa45-PQnC)
2020/10/21(水) 14:26:27.71ID:RtxzEAIBa380デフォルトの名無しさん (スップ Sd02-UPmx)
2020/10/21(水) 14:32:15.81ID:lJjSrE40d 5捨6入って特定に分野では一般的な計算方法では?
俺は使わないけど
俺は使わないけど
381デフォルトの名無しさん (アウアウウー Sa45-PQnC)
2020/10/21(水) 14:33:15.98ID:RtxzEAIBa382デフォルトの名無しさん (ワッチョイ 8224-3PYq)
2020/10/21(水) 14:47:36.44ID:8k52si4D0 それでもう.NET5使ってええの?
383デフォルトの名無しさん (ワッチョイ 02ad-zk6z)
2020/10/21(水) 14:52:13.96ID:v0oiVQF00 いいよ
384デフォルトの名無しさん (ワッチョイ 022f-MACq)
2020/10/21(水) 15:00:31.64ID:5E7rZ8hS0 >>377
それが問題になるのは、そのifブロックが複数スレッドで実行されたときだからな
それが問題になるのは、そのifブロックが複数スレッドで実行されたときだからな
385デフォルトの名無しさん (ワッチョイ eea7-qdaq)
2020/10/21(水) 16:37:46.89ID:APVpE4AA0386デフォルトの名無しさん (ワッチョイ 1d1a-LA9s)
2020/10/21(水) 17:36:18.89ID:sg7OOy0L0 >>385
つまりこういうのを危惧してるのか?
Task.Run(() => {
if(!locked){
locked = true;
await xxx.Task;
locked = false;
}
});
だとしたらこんなのは仮定に持ち出すのがそもそも間違い
それ言い出したらフィールド操作するあらゆるメソッドで「並列で呼び出される可能性がある」とlock()で括らなきゃいけなくなってしまう
つまりこういうのを危惧してるのか?
Task.Run(() => {
if(!locked){
locked = true;
await xxx.Task;
locked = false;
}
});
だとしたらこんなのは仮定に持ち出すのがそもそも間違い
それ言い出したらフィールド操作するあらゆるメソッドで「並列で呼び出される可能性がある」とlock()で括らなきゃいけなくなってしまう
387デフォルトの名無しさん (ワッチョイ c201-45kF)
2020/10/21(水) 17:53:44.86ID:lxmGvu010 ifブロックがシングルスレッドでしか実行されない状況で
lockが必要な状況ってどういうの?
lockが必要な状況ってどういうの?
388デフォルトの名無しさん (ワッチョイ 022f-MACq)
2020/10/21(水) 17:55:56.87ID:5E7rZ8hS0 元の質問がマルチスレッドでのロックに関する質問だと思うのだがな
このコードはスレッドセーフですか?
いいえ危険です
みんなが回答してるのはそういう事
このスレの趣旨や質問者のレベルを考えると妥当な仮定と回答だと思うぞ
このコードはスレッドセーフですか?
いいえ危険です
みんなが回答してるのはそういう事
このスレの趣旨や質問者のレベルを考えると妥当な仮定と回答だと思うぞ
389デフォルトの名無しさん (ワッチョイ 022f-MACq)
2020/10/21(水) 17:58:26.66ID:5E7rZ8hS0 >>387
再入すればやばい気がしないでもない
再入すればやばい気がしないでもない
390デフォルトの名無しさん (ワッチョイ 1d1a-LA9s)
2020/10/21(水) 18:02:52.19ID:sg7OOy0L0 元の質問って>>366だろ?
> async/awaitは同じスレッドに戻るからこんな単純なロックでも問題無い
「同じスレッドに戻る」を認識してるなら疑いなくtrueやん
ここで「でも別スレッドで動かしたら危険」と言うのは質問の前提を崩してる
> async/awaitは同じスレッドに戻るからこんな単純なロックでも問題無い
「同じスレッドに戻る」を認識してるなら疑いなくtrueやん
ここで「でも別スレッドで動かしたら危険」と言うのは質問の前提を崩してる
391デフォルトの名無しさん (ワッチョイ bdad-TzND)
2020/10/21(水) 18:14:17.17ID:MqdNiLmu0 崩してないな。
392デフォルトの名無しさん (ワッチョイ 022f-MACq)
2020/10/21(水) 18:19:06.78ID:5E7rZ8hS0 そのawaitしてるのはasyncメソッドだから、メインスレッドからのみ呼ばれるとは限らん
つまりもどるのがメインスレッドだとは限らん
というの理解しているのならまあ大きなお世話だと言えなくもないが
あとフォームアプリじゃなければ、もとのスレッドに戻るも保障されないけどな
つまりもどるのがメインスレッドだとは限らん
というの理解しているのならまあ大きなお世話だと言えなくもないが
あとフォームアプリじゃなければ、もとのスレッドに戻るも保障されないけどな
393デフォルトの名無しさん (ワッチョイ c201-45kF)
2020/10/21(水) 19:06:44.50ID:lxmGvu010 >>389
なるほど
ロックって言葉でちょっと意図を勘違いしてた
タスクが実行中ならもう1回呼ばれても実行しないようにしたいってことだったのか
タスクの中には他のスレッドと競合する処理はなく
ifブロックはUIスレッドでのみ実行されるという前提ならいいんじゃねって気がする
なるほど
ロックって言葉でちょっと意図を勘違いしてた
タスクが実行中ならもう1回呼ばれても実行しないようにしたいってことだったのか
タスクの中には他のスレッドと競合する処理はなく
ifブロックはUIスレッドでのみ実行されるという前提ならいいんじゃねって気がする
394デフォルトの名無しさん (ワッチョイ 895f-ojc3)
2020/10/21(水) 19:15:16.66ID:/GjtxlMb0 そもそも呼ばれないようにしろ
395デフォルトの名無しさん (ワッチョイ 1d1a-xMNm)
2020/10/21(水) 19:22:35.51ID:sg7OOy0L0396デフォルトの名無しさん (ワッチョイ fd02-XbO/)
2020/10/21(水) 20:02:51.66ID:GqMp+oa10397デフォルトの名無しさん (アウアウクー MMd1-/IKK)
2020/10/21(水) 21:32:30.66ID:38qDfhYJM >>338
まだ帳票開発したことないけど、やる機会があればDocurainってサービス使ってみようかなって思ってる
まだ帳票開発したことないけど、やる機会があればDocurainってサービス使ってみようかなって思ってる
398デフォルトの名無しさん (ワッチョイ cdda-XH2X)
2020/10/24(土) 21:17:36.19ID:skFEsPcd0 for文で書き始めて、配列から要素を取り出すだけだからforeachに書き換えて、でもやっぱりiが必要になってfor文に戻すこと多くない?
399デフォルトの名無しさん (ワッチョイ eee3-tMQb)
2020/10/24(土) 21:32:32.75ID://9fx+gF0 Index付きのSelect句で事足りる
400デフォルトの名無しさん (ワッチョイ c201-45kF)
2020/10/24(土) 21:50:33.27ID:878uww5f0 MoreLinqのIndex()がKeyValuePair<int, TSource>を返してくれる
簡単だから自分で実装してもいいけどライブラリ使うほうが管理含めて楽
foreach (var (i, x) in foo.Index()) {
Console.WriteLine($"{i}: {x}");
}
簡単だから自分で実装してもいいけどライブラリ使うほうが管理含めて楽
foreach (var (i, x) in foo.Index()) {
Console.WriteLine($"{i}: {x}");
}
401デフォルトの名無しさん (ワッチョイ cdda-XH2X)
2020/10/24(土) 21:55:59.78ID:skFEsPcd0 そうなんだ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 石破茂氏、「高市さんよくぞ言った」の空気に待った 存立危機事態…考えてはいても「公の場で言うことか」:東京新聞 [少考さん★]
- 『一貫している日本政府の立場があたかも変わったかのような主張を国内ですることは、中国を利することに』自民党広報が見解 [おっさん友の会★]
- 中国外務省「正式な発言撤回なければ受け入れず」 高市首相は台湾有事「存立危機事態」言及せずも「言及しないことと撤回は別問題」★2 [ぐれ★]
- 【速報】11月の東京都区部消費者物価2.8%上昇 [蚤の市★]
- 【大阪】「ここで死にたい」タワーマンション計画に高齢住民の悲痛な叫び 梅田・茶屋町で進む再開発計画 ロフト閉店で 梅田の東側は… [ぐれ★]
- 【おっぱい】「女性を見つけた瞬間に揉みたいという衝動にかられ…」路上で25歳女性に不同意わいせつ行為か 21歳土木作業員の男を逮捕 [nita★]
- 定食に漬物付けなくていいから200円安くしろよ。セコいとしてんじゃねえぞ。 [782460143]
- ネトウヨって部落だけは叩かないよね?なんで? [246620176]
- dアニメストア「OPEDのスキップ機能つけました」👉さすがに作品に失礼すぎると大炎上 [329329848]
- 【悲報】日経新聞、とんでもない詐欺グラフを作ってしまい大炎上 [788736982]
- 【悲報】高市内閣「WSJの記事はデマ」⇒共同「独自取材によると、トランプ氏は中国との対立をエスカレートするなと要請」 [115996789]
- 人生で一度もロン毛にしたことない男www
