前スレ
VB.NET質問スレ(Part40)
http://toro.2ch.net/test/read.cgi/tech/1365857015/
VB.NET質問スレ(Part41)
http://peace.2ch.net/test/read.cgi/tech/1391334405/
VB.NET質問スレ(Part42)
http://echo.2ch.net/test/read.cgi/tech/1419148239/
VB.NET質問スレ(Part43)
https://mevius.5ch.net/test/read.cgi/tech/1465958469/
探検
VB.NET質問スレ(Part44)
■ このスレッドは過去ログ倉庫に格納されています
1.(もんじゃ)
2018/05/26(土) 18:08:49.12ID:QSlAAqmb2018/09/22(土) 17:19:14.70ID:kFAOP0FY
マジで言ってるなら相当の幸せ回路だな
ALTキーを押すのが特殊と思わんかったてw
何でそうなるのw
ALTキーを押すのが特殊と思わんかったてw
何でそうなるのw
2018/09/22(土) 17:24:48.15ID:ga1yzWrI
>>66
VB.NETでブラウザ上表示じゃなくForm描画だとしたら、PictureBOXが載ってる親オブジェクトのFormの描画リフレッシュレートタイミングに問題が有るんじゃ無いか
VB.NETでブラウザ上表示じゃなくForm描画だとしたら、PictureBOXが載ってる親オブジェクトのFormの描画リフレッシュレートタイミングに問題が有るんじゃ無いか
2018/09/22(土) 19:34:34.13ID:/LVptLz+
「起動後の最初」に特定のキーを押す
描画が消えてしまう「ことがある」
特殊バグすぎてイラつくわ
一般的に起こってたまるかよ
描画が消えてしまう「ことがある」
特殊バグすぎてイラつくわ
一般的に起こってたまるかよ
2018/09/22(土) 20:50:50.11ID:tW/Yy4gZ
2018/09/22(土) 20:54:15.78ID:tW/Yy4gZ
ところで、再現手順については必要最低限の情報を提示したつもりだったんだが、こんなに特殊に受け止められるとは想定外だったな
これだけ出回っているツールだから、同じケースで悩んでいる人たちがいるだろうと思ってたんだが
主張根拠を、相手の書き込みの一部だけを恣意的に抽出してつなげて、捏造主体の印象操作を行うことに羞恥心を感じない心の浅い人もいるみたいだし、
聞く場所を間違えた、という結論に至りました^^
これだけ出回っているツールだから、同じケースで悩んでいる人たちがいるだろうと思ってたんだが
主張根拠を、相手の書き込みの一部だけを恣意的に抽出してつなげて、捏造主体の印象操作を行うことに羞恥心を感じない心の浅い人もいるみたいだし、
聞く場所を間違えた、という結論に至りました^^
2018/09/22(土) 21:01:14.93ID:/LVptLz+
バイバイ
2018/09/26(水) 19:54:20.52ID:9vsYZzuM
JavaのOpenJDKはLTSバージョンが無くなった
.NET復権だろうな
.NET復権だろうな
2018/10/04(木) 03:58:18.05ID:3Cg3sys6
この掲示板だけのインシデントと信じたいが、
お前らマジで使えねえな
その程度でイキってるからVB.NETが馬鹿にされるんだよ、ゴミ共が
お前らマジで使えねえな
その程度でイキってるからVB.NETが馬鹿にされるんだよ、ゴミ共が
75デフォルトの名無しさん
2018/10/28(日) 14:59:16.13ID:SFrY9m9d GetPrivateProfileStringでINIファイルの全文を読み込む方法ってありますか?
76デフォルトの名無しさん
2018/10/28(日) 17:31:59.35ID:pnWZEcOz77デフォルトの名無しさん
2018/10/28(日) 20:11:08.64ID:SFrY9m9d78デフォルトの名無しさん
2018/10/28(日) 20:28:08.52ID:SFrY9m9d http://jump.5ch.net/?https://msdn.microsoft.com/ja-jp/library/cc429779.aspx
ここを参考に考えてみたけれど
lpDefault
NULL で終わる既定の文字列へのポインタを指定します。lpKeyName パラメータで指定したキーが .ini ファイル内に見つからなかった場合、
GetPrivateProfileString 関数はこの既定の文字列を、lpReturnedString パラメータが指すバッファへコピーします。lpDefault パラメータで NULL を指定することはできません。
第一引数と第二引数をNULLにしてSECTIONとKEYを一挙に取得したい際、pKeyName パラメータで指定したキーが見つからないってことだと思うから
結局第三引数が第四引数の中に入っちゃうのですが
解釈がおかしいのでしょうか
ここを参考に考えてみたけれど
lpDefault
NULL で終わる既定の文字列へのポインタを指定します。lpKeyName パラメータで指定したキーが .ini ファイル内に見つからなかった場合、
GetPrivateProfileString 関数はこの既定の文字列を、lpReturnedString パラメータが指すバッファへコピーします。lpDefault パラメータで NULL を指定することはできません。
第一引数と第二引数をNULLにしてSECTIONとKEYを一挙に取得したい際、pKeyName パラメータで指定したキーが見つからないってことだと思うから
結局第三引数が第四引数の中に入っちゃうのですが
解釈がおかしいのでしょうか
79デフォルトの名無しさん
2018/10/28(日) 20:43:01.97ID:pnWZEcOz >>78
実際にやってみた?、考えただけ?
普通に解釈すればlpKeyNameがNULLということは
キーを指定していないんだからキーが見つからないと
なるとは考えられないけどね
実際にやってみてlpDefaultの値がlpReturnedStringに
入ってしまったのならこの関数で全文取得は無理なんじゃないかな
実際にやってみた?、考えただけ?
普通に解釈すればlpKeyNameがNULLということは
キーを指定していないんだからキーが見つからないと
なるとは考えられないけどね
実際にやってみてlpDefaultの値がlpReturnedStringに
入ってしまったのならこの関数で全文取得は無理なんじゃないかな
80デフォルトの名無しさん
2018/10/28(日) 22:33:46.69ID:SFrY9m9d >>79
実際にやってみて入らなかったよ、教えてくれたのに申し訳ない。
INIファイルからキーを全部抽出して任意のタイミングで変数に入れたいだけなんだが
調べてもよく分からなくて質問を受けてくれてる方にも
困惑させてしまっているな...
実際にやってみて入らなかったよ、教えてくれたのに申し訳ない。
INIファイルからキーを全部抽出して任意のタイミングで変数に入れたいだけなんだが
調べてもよく分からなくて質問を受けてくれてる方にも
困惑させてしまっているな...
2018/10/29(月) 06:03:03.69ID:WUUAbnDR
30分ごとに料金を+500円ずつ足していってラベルテキストに表示するプログラムが作りたいのですが
どうすればいいでしょうか?
経過時間を計測するところまではできています
どうすればいいでしょうか?
経過時間を計測するところまではできています
2018/10/29(月) 08:05:28.84ID:zamFShY8
>>81
Tickイベントで1秒毎に変数に1足していって300.600.900辺りで表示するようにすればいい
Tickイベントで1秒毎に変数に1足していって300.600.900辺りで表示するようにすればいい
2018/10/29(月) 10:50:14.54ID:oAZGLoeZ
>>80
> 第一引数と第二引数をNULLにしてSECTIONとKEYを一挙に取得したい
誤解してない? これで手に入るのはセクションの一覧だよ
その後で個々のセクションごとに改めて第2引数だけNULLでGetPrivateProfileStringを呼び出してそのセクション内のキー一覧を取得する
ほかの確認事項としては
iniのファイルパスが正しい確認、念のためフルパスで渡す
\0で区切られた文字列はStringとかStringBuilderとかでは正しく受け取れないからByte配列で受け取ってEncoding::GetStringで文字列変換
> 第一引数と第二引数をNULLにしてSECTIONとKEYを一挙に取得したい
誤解してない? これで手に入るのはセクションの一覧だよ
その後で個々のセクションごとに改めて第2引数だけNULLでGetPrivateProfileStringを呼び出してそのセクション内のキー一覧を取得する
ほかの確認事項としては
iniのファイルパスが正しい確認、念のためフルパスで渡す
\0で区切られた文字列はStringとかStringBuilderとかでは正しく受け取れないからByte配列で受け取ってEncoding::GetStringで文字列変換
2018/10/29(月) 18:57:40.55ID:vJZ8/XYU
>>83
ごめんなさい、少し勘違いをしていました。
第一引数でセクションを指定し、第二引数をVBNullStringにした場合、キー値ではなく何故かセクション名をひとつだけ取得するのですが、第一引数でセクションを指定し、第二引数をnullにすれば指定したセクションのキー値をすべて取得できるという解釈は誤りでしょうか?
ごめんなさい、少し勘違いをしていました。
第一引数でセクションを指定し、第二引数をVBNullStringにした場合、キー値ではなく何故かセクション名をひとつだけ取得するのですが、第一引数でセクションを指定し、第二引数をnullにすれば指定したセクションのキー値をすべて取得できるという解釈は誤りでしょうか?
2018/10/29(月) 19:27:50.65ID:oAZGLoeZ
> 第一引数でセクションを指定し、第二引数をnullにすれば指定したセクションのキー値をすべて取得できるという解釈は誤りでしょうか?
解釈は正しい
セクションしか取れないのは何か勘違いしてんじゃね
1つしか取れないのは>>83の最後の行
解釈は正しい
セクションしか取れないのは何か勘違いしてんじゃね
1つしか取れないのは>>83の最後の行
2018/10/29(月) 20:04:46.54ID:EQ0ZvgtX
>>85
GetPrivateProfileString(セクションの変数, キー値の変数, "", strBuffer, strBuffer.Capacity, FileName)
KeyValue =strBuffer.ToString
第一引数でセクションの変数(ここでは「element」とします。)第二引数にVBNullStringを代入した際、strBufferに格納される値が
「element」のみなのですが>>85さんの仰るとおり何か勘違いをしているのでしょうか...
以下、INIファイルです
[element]
VALUE1 = AAA\nBBB
VALUE2 = CCC\nDDD
[element2]
VALUE3 = EEE\nFFF
VALUE4 = GGG\nHHH
本来VALUE1の値である「AAA\nBBB」とVALUE2の値である「CCC\nDDD」が取得されるものかと思っておりました。
GetPrivateProfileString(セクションの変数, キー値の変数, "", strBuffer, strBuffer.Capacity, FileName)
KeyValue =strBuffer.ToString
第一引数でセクションの変数(ここでは「element」とします。)第二引数にVBNullStringを代入した際、strBufferに格納される値が
「element」のみなのですが>>85さんの仰るとおり何か勘違いをしているのでしょうか...
以下、INIファイルです
[element]
VALUE1 = AAA\nBBB
VALUE2 = CCC\nDDD
[element2]
VALUE3 = EEE\nFFF
VALUE4 = GGG\nHHH
本来VALUE1の値である「AAA\nBBB」とVALUE2の値である「CCC\nDDD」が取得されるものかと思っておりました。
87デフォルトの名無しさん
2018/10/30(火) 00:57:51.70ID:8/9eZ6sC 大して複雑でもないんだから、悩むなら
ファイル全読して自分で解析した方が早そう
ファイル全読して自分で解析した方が早そう
2018/10/30(火) 13:23:38.49ID:LlhJqt4w
>>86
ヌルストリングはヌル値じゃなくて空文字列の事じゃん?
ヌルストリングはヌル値じゃなくて空文字列の事じゃん?
2018/10/30(火) 13:36:29.61ID:LlhJqt4w
nullにすればって言ってるからヌル渡してると思うじゃん?
まさか空文字列を渡して動かないと言ってるとは思わないじゃん?
まさか空文字列を渡して動かないと言ってるとは思わないじゃん?
2018/10/30(火) 13:43:18.14ID:2q9Nopp0
(定数) Constants.vbNullString As String = Nothing
インテリセンスによるとこうらしい
説明では長さ0の文字列とか言ってるけどな
インテリセンスによるとこうらしい
説明では長さ0の文字列とか言ってるけどな
2018/10/31(水) 01:30:41.68ID:uKh/exBf
>>86
GetPrivateProfileString("element", vbNullString, ...
としたときにバッファに帰る文字列は
"VALUE1" & vbNullChar & "VALUE2" & vbNullChar & vbNullChar
なので、lpReturnedString に StringBuilder を渡すと最初の vbNullChar で区切られてしまう。
こういうときは >>83 が書いてくれてるようにバイト配列で受けるか、 Marshal.AllocHGlobal でバッファを確保してアドレスを渡す。
Unicode バージョンを呼び出している場合は
Dim bufferPtr As IntPtr = Marshal.AllocHGlobal(1024)
Dim buffer As String = String.Empty
Dim nSize As Integer = GetPrivateProfileString("element", vbNullString, vbNullString, bufferPtr, 512, "C:\HOGE.ini")
If nSize > 0 Then buffer = Marshal.PtrToStringUni(bufferPtr, nSize - 1)
Marshal.FreeHGlobal(bufferPtr)
Dim keys As String() = buffer.Split(vbNullChar)
こんな感じ
GetPrivateProfileString("element", vbNullString, ...
としたときにバッファに帰る文字列は
"VALUE1" & vbNullChar & "VALUE2" & vbNullChar & vbNullChar
なので、lpReturnedString に StringBuilder を渡すと最初の vbNullChar で区切られてしまう。
こういうときは >>83 が書いてくれてるようにバイト配列で受けるか、 Marshal.AllocHGlobal でバッファを確保してアドレスを渡す。
Unicode バージョンを呼び出している場合は
Dim bufferPtr As IntPtr = Marshal.AllocHGlobal(1024)
Dim buffer As String = String.Empty
Dim nSize As Integer = GetPrivateProfileString("element", vbNullString, vbNullString, bufferPtr, 512, "C:\HOGE.ini")
If nSize > 0 Then buffer = Marshal.PtrToStringUni(bufferPtr, nSize - 1)
Marshal.FreeHGlobal(bufferPtr)
Dim keys As String() = buffer.Split(vbNullChar)
こんな感じ
2018/11/03(土) 19:15:19.21ID:t0xGKw3G
>>90
Nothingを文字列として評価すると長さゼロの文字列だからな
Nothingを文字列として評価すると長さゼロの文字列だからな
2018/11/03(土) 19:36:08.98ID:SHI5qsHH
VBのNothingはnullではなく型の規定値だったはず。
つまり、
Dim hoge as String = Nothing
はC#の
var hoge = default(string);
と同じはず。
だからどっちにしろ空文字ではなくNull参照じゃないとおかしい気がする
つまり、
Dim hoge as String = Nothing
はC#の
var hoge = default(string);
と同じはず。
だからどっちにしろ空文字ではなくNull参照じゃないとおかしい気がする
2018/11/03(土) 20:46:51.95ID:0JFYuFT5
Debug.Print("{0}", String.Empty.Equals(vbNullString)) .. False
Debug.Print("{0}", String.Empty = vbNullString) ... True
面白いな。
Debug.Print("{0}", String.Empty = vbNullString) ... True
面白いな。
2018/11/07(水) 00:28:16.72ID:SlJfY7pV
WindowsFormアプリからExcelを参照する際に困ったことがあったので質問します。
いま参照しているExcelに名前ボックスが同じ名前のActivexコントロール(CheckBox)が2つあるんですが片方のValue値が取れません。
Excelには手を加えずに解決する方法をご存じの方はいますか?
いま参照しているExcelに名前ボックスが同じ名前のActivexコントロール(CheckBox)が2つあるんですが片方のValue値が取れません。
Excelには手を加えずに解決する方法をご存じの方はいますか?
2018/11/08(木) 16:15:45.02ID:QFdBGuQW
>>95
自己解決しました。
自己解決しました。
2018/11/08(木) 18:23:13.28ID:EefS2xXv
>>96
解決方法ぐらい書き込めよ
解決方法ぐらい書き込めよ
2018/11/08(木) 21:54:24.86ID:VFBZ++97
2018/11/12(月) 17:40:02.30ID:epPqaRvS
datagridviewで選択した行のテキストを各列ごとにテキストボックスに反映させるにはどうすればいいですか?
100デフォルトの名無しさん
2018/11/13(火) 11:07:08.55ID:XsWLHTll BindingSourceを作って
DataGridViewのDataSourceと各TextBoxのDataBindingに割り当てる
DataGridViewのDataSourceと各TextBoxのDataBindingに割り当てる
101デフォルトの名無しさん
2018/11/13(火) 17:35:19.43ID:rlJmmkiE BindingSource って Visible=False なコントロールを飛ばするとか、微妙なところあるんだよなぁ
102デフォルトの名無しさん
2018/11/16(金) 15:10:13.08ID:3cDS4XFZ 11/14あたりのWindowsUpdateでListViewの表示がおかしくなった。
正確には「View=Tile」にしてもLargeIconになってしまうケースがある。
既にリリース済みのシステムで今日から表示がおかしいという問合せが
あった。どこに原因があるのか確認しようとミニマムなコードを書いて
みても普通にTileで表示されるので原因がまだ特定できていない。
それとApplication.EnableVisualStyles()していてもTabコントロール上の
ボタンにVisualStyleが適用されないものもある。この時、Tabコントロール
以外に存在するコントロールにはVisualStyleが適用されている。
これも原因がわからない。。
同じような現象になった人っていますか?
正確には「View=Tile」にしてもLargeIconになってしまうケースがある。
既にリリース済みのシステムで今日から表示がおかしいという問合せが
あった。どこに原因があるのか確認しようとミニマムなコードを書いて
みても普通にTileで表示されるので原因がまだ特定できていない。
それとApplication.EnableVisualStyles()していてもTabコントロール上の
ボタンにVisualStyleが適用されないものもある。この時、Tabコントロール
以外に存在するコントロールにはVisualStyleが適用されている。
これも原因がわからない。。
同じような現象になった人っていますか?
103デフォルトの名無しさん
2018/11/16(金) 23:58:30.69ID:HodhQ/sE おるわけないやろオマエのバグやのにw
104デフォルトの名無しさん
2018/11/20(火) 17:31:14.06ID:5r5VrLgw Windowsフォームを閉じる際にMe.close()とMe.dispose()の両方を書いたら閉じる時の挙動がおかしい(後ろで開いてたエスクプローラーが一瞬だけ出てくる)のですが原因が分かる方いますか?
105デフォルトの名無しさん
2018/11/24(土) 15:05:28.97ID:krxB1Xz+ 俺も今月からおかしいのに気が付いた。
Private Abc as String = "AAA"と設定しているのに、
ボタンイベントで下記のみ実行
Abc = "ABDEF"
TextBox1.Text = Abc
Dim S1 as String = Abc
Msgbox(S1)
上記のコードを実行すると Msgboxの表示は”AAA”
テキストボックス表示は”ABDEF”
今月になって発覚した。
仕方ないからクラスを追加してグローバル変数にして実行している。
プライベート変数 すべてに影響があって初期値に戻される事象。
vs2017の修正を試したがだめだった。
Private Abc as String = "AAA"と設定しているのに、
ボタンイベントで下記のみ実行
Abc = "ABDEF"
TextBox1.Text = Abc
Dim S1 as String = Abc
Msgbox(S1)
上記のコードを実行すると Msgboxの表示は”AAA”
テキストボックス表示は”ABDEF”
今月になって発覚した。
仕方ないからクラスを追加してグローバル変数にして実行している。
プライベート変数 すべてに影響があって初期値に戻される事象。
vs2017の修正を試したがだめだった。
106デフォルトの名無しさん
2018/11/24(土) 15:23:36.71ID:VBkVIhNz >>105の頭が目がおかしいのだろう
さすがにそんな言語レベルの根本的なバグがあったら自動テストで拾える
Msgboxのバグで以前表示した値が出ているとかならワンチャンないとも言い切れなくもないかもしれない可能性はゼロではないかもね
さすがにそんな言語レベルの根本的なバグがあったら自動テストで拾える
Msgboxのバグで以前表示した値が出ているとかならワンチャンないとも言い切れなくもないかもしれない可能性はゼロではないかもね
107デフォルトの名無しさん
2018/11/24(土) 22:20:58.15ID:/Hv6UjJC こいつらはどうしてちゃんと環境かかないんだろうねぇ
108デフォルトの名無しさん
2018/11/25(日) 11:13:33.12ID:sTNuHYLw 聞かれないからじゃね
109102
2018/11/26(月) 08:57:51.44ID:DXbnFpYk Windows 10 Pro 1803 x64
VisualStudio 2013 + .NET Framework 4 + VB.Net
この環境で Windows.Forms アプリを開発してます。
VisualStudio 2013 + .NET Framework 4 + VB.Net
この環境で Windows.Forms アプリを開発してます。
110デフォルトの名無しさん
2018/11/26(月) 09:23:13.92ID:jCGZ4ioD .NET4はとっくにサポート期限切れてるから使っちゃダメ
もしWinのアップデートのせいだったとしても、サポート切れの.NET4なんか当然テストしてないだろうし、自己責任よ
もしWinのアップデートのせいだったとしても、サポート切れの.NET4なんか当然テストしてないだろうし、自己責任よ
111102
2018/11/26(月) 15:59:12.73ID:DXbnFpYk 当該の不具合が発生している環境は Window 7 Pro x86 です。
後だし情報ですんません。
後だし情報ですんません。
112102
2018/11/26(月) 16:02:59.93ID:DXbnFpYk 連投になってしまってすんません。
Windows 7 は 2020年1月で切れるということは、まだ切れてないんじゃ
ないんですか?
この解釈は間違ってますか?
.NET Framework 4 のサポートが終わったってどこに記述ありました?
ここにはそこまで書いてないと思うのですが。
https://www.microsoft.com/ja-jp/download/details.aspx?id=17718
Windows 7 は 2020年1月で切れるということは、まだ切れてないんじゃ
ないんですか?
この解釈は間違ってますか?
.NET Framework 4 のサポートが終わったってどこに記述ありました?
ここにはそこまで書いてないと思うのですが。
https://www.microsoft.com/ja-jp/download/details.aspx?id=17718
113102
2018/11/26(月) 16:25:55.15ID:DXbnFpYk ライフサイクルについてはここで見つけることができました。
https://support.microsoft.com/ja-jp/help/17455/lifecycle-faq-net-framework
「2016 年 1 月 12 日に終了しました」とありますなorz
https://support.microsoft.com/ja-jp/help/17455/lifecycle-faq-net-framework
「2016 年 1 月 12 日に終了しました」とありますなorz
114デフォルトの名無しさん
2018/11/27(火) 02:01:37.35ID:JHhXTC3j そもそもVS2013って、Win10で動作保証されているのか?
115デフォルトの名無しさん
2018/11/27(火) 10:19:17.21ID:Z5tknMOb VB2013てWin8.1までだな。
Win10ならVS2015以降か。
Win10ならVS2015以降か。
116デフォルトの名無しさん
2018/11/27(火) 16:09:13.84ID:veQAfEkI もしかして、開発のプロパティが .NET2とか初期値になってない?
PCにインストールしていない下位バージョンの.NET開発は挙動がおかしいよ。
まれだが、バージョンを最新に指定するとなおることも多い。
PCにインストールしていない下位バージョンの.NET開発は挙動がおかしいよ。
まれだが、バージョンを最新に指定するとなおることも多い。
117102
2018/11/27(火) 19:10:09.64ID:Z5tknMOb >>116
対象のフレームワークは.NET Framework 4になってる。
ミニマムに再現確認しようと新規でプロジェクトを(.NET4で)作成しても問題なし。
でも既存のはListViewでView.TileにならずView.LargeIconだったりVisualStyleが適用されなかったりする。。
(Win7の実行環境でもWin10の開発環境でも。)
みんなはちゃんと最新の開発環境に移行できてるの!?
今回問題になってるアプリケーションはVS2003の頃に.NET1.1で開発初めて、途中で.NET2.0にして
いまはVS2013+.NET4で保守してきてるけど、そんなにポンポンと開発環境をMSの言うがままに
アップデートしてきてるの!?!?
対象のフレームワークは.NET Framework 4になってる。
ミニマムに再現確認しようと新規でプロジェクトを(.NET4で)作成しても問題なし。
でも既存のはListViewでView.TileにならずView.LargeIconだったりVisualStyleが適用されなかったりする。。
(Win7の実行環境でもWin10の開発環境でも。)
みんなはちゃんと最新の開発環境に移行できてるの!?
今回問題になってるアプリケーションはVS2003の頃に.NET1.1で開発初めて、途中で.NET2.0にして
いまはVS2013+.NET4で保守してきてるけど、そんなにポンポンと開発環境をMSの言うがままに
アップデートしてきてるの!?!?
118デフォルトの名無しさん
2018/11/27(火) 20:05:39.30ID:GOjY0rNn こういう典型的な保守さんを見ると、そんなにあんたたちの作ったものは品質が高いのかとツッコミたくなる
クソ細かいこと気にする前にもっと他にいくらでも直さなきゃいけないところあるだろ?
やるべきことをやらないくせに「やらない」ことに対してだけオーバークォリティな典型的な無能
クソ細かいこと気にする前にもっと他にいくらでも直さなきゃいけないところあるだろ?
やるべきことをやらないくせに「やらない」ことに対してだけオーバークォリティな典型的な無能
119デフォルトの名無しさん
2018/11/27(火) 20:10:12.34ID:p/6t1dkT >>118
子供過ぎw
子供過ぎw
120デフォルトの名無しさん
2018/11/27(火) 20:36:21.61ID:JHhXTC3j どうさ保障されてる環境でないとサポートされないからな
問題が起きたらまずサポートされてる環境で再現するか確かめるわ
問題が起きたらまずサポートされてる環境で再現するか確かめるわ
121デフォルトの名無しさん
2018/11/27(火) 23:40:16.63ID:Z5WUNYoK >>117
manifestになんか書いてるとか
manifestになんか書いてるとか
122102
2018/11/28(水) 17:57:11.21ID:ue+ZFZI7 >>117
.manifestはないけど.exe.configならある。
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
<supportedRuntime version="v2.0" sku=".NETFramework,Version=v2.0"/>
</startup>
と書いてる。
このあたりをv2.0の行を削除してみたりuseLegacyV2RuntimeActivationPolicyを
なくしてみたりといじってみたけど解消されず。。
.manifestはないけど.exe.configならある。
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
<supportedRuntime version="v2.0" sku=".NETFramework,Version=v2.0"/>
</startup>
と書いてる。
このあたりをv2.0の行を削除してみたりuseLegacyV2RuntimeActivationPolicyを
なくしてみたりといじってみたけど解消されず。。
123デフォルトの名無しさん
2018/11/29(木) 00:08:17.33ID:VI19qptG ListViewは.NET4で安定してるはず。
NET4以前は、ある一定行数を超えるとエラーで処理が止まるということがあった。
だから、WIN32APIを使ってWM_PAINTメッセージを処理するコードを使わないと
ほぼ動かない状態だった。だが、.NET4でWIN32API呼び出しがいらなくなった。
多分だが、ビルド関係のPC固有のバグも含まれると思う。
なので、VSを終了してデバックされたものではない<開発中のアプリEXE>を
直接動かしてみてね。それでどうか?
VS2008の頃は、VSのデバック使わないで開発してた経緯がある。
NET4以前は、ある一定行数を超えるとエラーで処理が止まるということがあった。
だから、WIN32APIを使ってWM_PAINTメッセージを処理するコードを使わないと
ほぼ動かない状態だった。だが、.NET4でWIN32API呼び出しがいらなくなった。
多分だが、ビルド関係のPC固有のバグも含まれると思う。
なので、VSを終了してデバックされたものではない<開発中のアプリEXE>を
直接動かしてみてね。それでどうか?
VS2008の頃は、VSのデバック使わないで開発してた経緯がある。
124102
2018/11/29(木) 08:25:18.55ID:usvQhOSh >>123
.NET4 以前の不具合は知らなかった。ありがとう。
今回の現象は、.NET1.1の頃に開発したソースをそのままずっと引き継いでいて
VS2003〜2005〜2008〜2010〜2013、.NET1.1〜2.0〜3.5〜4と変遷しながらも
そのまま使用している。
いま起きている不具合は Releaseビルドした実行ファイルを、別PCで実行しても
発生するし、VSでのデバッグ実行でも発生している。
.NET4 以前の不具合は知らなかった。ありがとう。
今回の現象は、.NET1.1の頃に開発したソースをそのままずっと引き継いでいて
VS2003〜2005〜2008〜2010〜2013、.NET1.1〜2.0〜3.5〜4と変遷しながらも
そのまま使用している。
いま起きている不具合は Releaseビルドした実行ファイルを、別PCで実行しても
発生するし、VSでのデバッグ実行でも発生している。
125デフォルトの名無しさん
2018/11/29(木) 16:27:06.98ID:VI19qptG 確か、そのころVS2003とかDLL出力できないものだよね。
多分 .resxファイルとか残ってるでしょ?
サポート対象のバージョンで動くかどうかではなく、昔から流用してきたコードやメソッドを
見直すほうが先だと思う。古いメソッドとか使ってると微妙なものがある。
多分 .resxファイルとか残ってるでしょ?
サポート対象のバージョンで動くかどうかではなく、昔から流用してきたコードやメソッドを
見直すほうが先だと思う。古いメソッドとか使ってると微妙なものがある。
126102
2018/11/29(木) 19:16:02.04ID:usvQhOSh >>125
開発当初から.resxファイル使ってるよ。
これマズいの?
確かに過去に.NETを新しいものに変更したときそれまで使用していたメソッドが
使えなくなってメンテした記憶はある。
でも.NET4で作成したアプリがついこの間までは普通に使えていたのに
急に挙動(見た目)が変わるって変じゃない?
単純に ListView の View を Tile にしても LargeIcon になってしまうのって気持ち悪いし。
enum定数の値が変わったとかならわからなくもないけど、実際にはenumのView.Tileを
指定しているし。
ステップ実行してもそのタイミングでViewはTileになっている。
けれども実際の見た目はLargeIconになっている...
まあサポートの切れた.NET4を使っていて文句言うなと指摘されそうだけど。
開発当初から.resxファイル使ってるよ。
これマズいの?
確かに過去に.NETを新しいものに変更したときそれまで使用していたメソッドが
使えなくなってメンテした記憶はある。
でも.NET4で作成したアプリがついこの間までは普通に使えていたのに
急に挙動(見た目)が変わるって変じゃない?
単純に ListView の View を Tile にしても LargeIcon になってしまうのって気持ち悪いし。
enum定数の値が変わったとかならわからなくもないけど、実際にはenumのView.Tileを
指定しているし。
ステップ実行してもそのタイミングでViewはTileになっている。
けれども実際の見た目はLargeIconになっている...
まあサポートの切れた.NET4を使っていて文句言うなと指摘されそうだけど。
127デフォルトの名無しさん
2018/11/29(木) 20:42:47.87ID:zhuKFo+V デバッグ実行で再現するならミニマムコード作って晒せよ
128デフォルトの名無しさん
2018/11/30(金) 00:40:56.22ID:rf9Ni6yN あ! そうか・・ LargeIconの設定はコードで書いてるの?
リストビューのツールプロパティに設定項目なかったかな?
それで試してみた? 設定変更のコードを削除してから試してね。
ただ、頻繁に変更するとか、あとバグるメソッドじゃないんだよね。
なんどもすまん!
リストビューのツールプロパティに設定項目なかったかな?
それで試してみた? 設定変更のコードを削除してから試してね。
ただ、頻繁に変更するとか、あとバグるメソッドじゃないんだよね。
なんどもすまん!
129102
2018/11/30(金) 08:57:01.31ID:SIPYJVnh >>127
ミニマムコード書いても再現されないから困ってるんだよ。
>>128
ListViewコントロールのViewを LargeIcon、Tile、SmallIcon、List、Detail と
切り替えられるようにしている。
もちろんコードでやってる。
で、書いてくれたように今、デザイン時でTileにしてコードでは変更しなくてもやはり
LargeIconになってしまったよ。。。
Tile時はImageに加えてSubItemの文字列も表示されるので便利なんだけど
現状ではLargeIconになってしまうのでSubItemが見えず一見すると同じような
ものが並んでしまって判断つかないからDetailに表示を切り替えて我慢して
もらっている。でもこれだとImageが表示されないので、これはこれで不便なんだよね。
そもそも気になるのが、VisualStyleを有効にしているのに、同じフォーム内でも
ボタンで適用されているのとされていないものが混在しているってこと。
フォームのタブコントロール上のパネルコントロールに配置しているボタンには
適用されていないけれどフォームのパネルコントロールに配置しているボタンは
適用されている。。。
でも再現確認しようとミニマムなものを新規で作成してみてもこんな事にならず
ちゃんと全てのコントロールにVisualStyleは適用される。
わけわからない。。
ミニマムコード書いても再現されないから困ってるんだよ。
>>128
ListViewコントロールのViewを LargeIcon、Tile、SmallIcon、List、Detail と
切り替えられるようにしている。
もちろんコードでやってる。
で、書いてくれたように今、デザイン時でTileにしてコードでは変更しなくてもやはり
LargeIconになってしまったよ。。。
Tile時はImageに加えてSubItemの文字列も表示されるので便利なんだけど
現状ではLargeIconになってしまうのでSubItemが見えず一見すると同じような
ものが並んでしまって判断つかないからDetailに表示を切り替えて我慢して
もらっている。でもこれだとImageが表示されないので、これはこれで不便なんだよね。
そもそも気になるのが、VisualStyleを有効にしているのに、同じフォーム内でも
ボタンで適用されているのとされていないものが混在しているってこと。
フォームのタブコントロール上のパネルコントロールに配置しているボタンには
適用されていないけれどフォームのパネルコントロールに配置しているボタンは
適用されている。。。
でも再現確認しようとミニマムなものを新規で作成してみてもこんな事にならず
ちゃんと全てのコントロールにVisualStyleは適用される。
わけわからない。。
130デフォルトの名無しさん
2018/11/30(金) 11:41:46.78ID:eQTcWZX5 賭けてもいい。システム側の問題じゃない
あなたのコードの問題
最初からそう言ってる人もいたけど、それはここに書いてる文章の行間からも十分推測できる
あなたのコードの問題
最初からそう言ってる人もいたけど、それはここに書いてる文章の行間からも十分推測できる
131デフォルトの名無しさん
2018/11/30(金) 18:19:51.56ID:Lh71478i 今のプロジェクトから削っていくのでも
新しいプロジェクトに増やしていくのでも
どっちでもいいから順番にやってけば
新しいプロジェクトに増やしていくのでも
どっちでもいいから順番にやってけば
132102
2018/11/30(金) 20:23:30.40ID:SIPYJVnh ミニマム環境作ってだいぶ調べた。
プロジェクトのプロパティで「アプリケーション」内の「アプリケーションフレームワークを有効にする」の
チェックを外すと再現できた。
このチェックを付けるとListViewはTileとして表示される。
チェックを外すとListViewはTileを指定してもLargeIconで表示されてしまう。
プロジェクトのプロパティで「アプリケーション」内の「アプリケーションフレームワークを有効にする」の
チェックを外すと再現できた。
このチェックを付けるとListViewはTileとして表示される。
チェックを外すとListViewはTileを指定してもLargeIconで表示されてしまう。
133デフォルトの名無しさん
2018/11/30(金) 21:39:51.29ID:cIO0a97u よし、その調子で調査を続けたまえ
134デフォルトの名無しさん
2018/11/30(金) 23:37:28.55ID:aHvjCfZ2 >To enable tile view, your application must call the Application.EnableVisualStyles method.
らしいけど、ちゃんと呼んでるのか?
アプリケーションフレームワーク有効だとその辺勝手にやってくれてたはず
らしいけど、ちゃんと呼んでるのか?
アプリケーションフレームワーク有効だとその辺勝手にやってくれてたはず
135デフォルトの名無しさん
2018/12/01(土) 15:47:20.03ID:6wWEz5Hu136デフォルトの名無しさん
2018/12/01(土) 18:09:06.36ID:KZz1rFV5 自動テストって業務アプリでもつくっておけよ。ww
そんなの死んでも作らんわ。
そんなの死んでも作らんわ。
137デフォルトの名無しさん
2018/12/03(月) 02:07:02.91ID:CiT4luJ/ そこまでならシステムバグかも。言ってるだろ保存時のエラーを拾ってる可能性が高いって。
私も経験していて、すべて同じコードをそっくり新規プロジェクト作成してコピペすると
バグの再現率は皆無。早めに移動させたほうがいいよ。
3年前には、バックグランドのIsBusyが毎度Falseで戻るというバグ。
この時も新規プロジェクトにコードをコピペしたら直った。
私も経験していて、すべて同じコードをそっくり新規プロジェクト作成してコピペすると
バグの再現率は皆無。早めに移動させたほうがいいよ。
3年前には、バックグランドのIsBusyが毎度Falseで戻るというバグ。
この時も新規プロジェクトにコードをコピペしたら直った。
138102
2018/12/03(月) 08:39:16.52ID:SG+JG4dk だから、新規でミニマムコード書いてみて再現するんだって。
VS2013+VB.NET+.NET4でWindowsForms新規プロジェクト作成して、
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
Me.ListView1.Columns.Add("1")
Me.ListView1.Columns.Add("2")
Me.ListView1.Columns.Add("3")
Me.ListView1.Columns.Add("4")
Me.ListView1.View = View.Tile
For i As Integer = 0 To 9
Dim lvi As ListViewItem = New ListViewItem(String.Format("item{0}", i))
lvi.SubItems.Add(String.Format("SubItem1_{0}", i))
lvi.SubItems.Add(String.Format("SubItem2_{0}", i))
lvi.SubItems.Add(String.Format("SubItem3_{0}", i))
Me.ListView1.Items.Add(lvi)
Next
End Sub
とでも書いておけば、プロジェクトのプロパティの「アプリケーションフレームワークを有効にする」の
チェック有無でViewがTileになったりならなかったりするんだって。
VS2013+VB.NET+.NET4でWindowsForms新規プロジェクト作成して、
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
Me.ListView1.Columns.Add("1")
Me.ListView1.Columns.Add("2")
Me.ListView1.Columns.Add("3")
Me.ListView1.Columns.Add("4")
Me.ListView1.View = View.Tile
For i As Integer = 0 To 9
Dim lvi As ListViewItem = New ListViewItem(String.Format("item{0}", i))
lvi.SubItems.Add(String.Format("SubItem1_{0}", i))
lvi.SubItems.Add(String.Format("SubItem2_{0}", i))
lvi.SubItems.Add(String.Format("SubItem3_{0}", i))
Me.ListView1.Items.Add(lvi)
Next
End Sub
とでも書いておけば、プロジェクトのプロパティの「アプリケーションフレームワークを有効にする」の
チェック有無でViewがTileになったりならなかったりするんだって。
139102
2018/12/03(月) 10:29:50.33ID:SG+JG4dk その後の検証で、VS2017+.NET4や.NET4.7.1などではアプリケーションフレームワークを無効にしていても
Application.EnableVisualStyles()を呼んでおけば大丈夫でした。
以上
Application.EnableVisualStyles()を呼んでおけば大丈夫でした。
以上
140102
2018/12/03(月) 10:44:29.67ID:SG+JG4dk VS2013のVB.NETでアプリケーションフレームワークを有効にしない場合、コードで
Application.EnableVisualStyles()を実行していてもVisualStyleが適用されない部分が発生する
(中途半端に適用されてしまう)ことがわかりました。
アプリケーションフレームワークを無効にして Sub Main() から起動していたものを
アプリケーションフレームワークを有効にして ApplicationEvents で処理するように変更することで
今回の件は対応できました。
さようなら。
Application.EnableVisualStyles()を実行していてもVisualStyleが適用されない部分が発生する
(中途半端に適用されてしまう)ことがわかりました。
アプリケーションフレームワークを無効にして Sub Main() から起動していたものを
アプリケーションフレームワークを有効にして ApplicationEvents で処理するように変更することで
今回の件は対応できました。
さようなら。
141デフォルトの名無しさん
2018/12/03(月) 13:28:55.92ID:iyo7d7NK Formを表示するだけなのにvirustotalで調べると
Endgame malicious (moderate confidence)
Trapmine malicious.moderate.ml.score
↑の2つが必ず検出される・・・
Endgame malicious (moderate confidence)
Trapmine malicious.moderate.ml.score
↑の2つが必ず検出される・・・
142デフォルトの名無しさん
2018/12/06(木) 20:59:58.22ID:6nIp7B/v VB2010のBackgroundworkerで質問です
Backgroundworker1(BW1)とBackgroundworker2(BW2)を用意しておいて、
メインスレッドからBW1を走らせ、BW1からさらにBW2を走らせるようにして
BW2で処理した結果をどうにかしてBW1に渡したいんですが、どうすれば
安全にできるでしょうか?
(BW1の中から更にBW2を起動できるのは確認済みです)
パッと思いついたのは
1. あらかじめグローバル変数を1つ用意
2. BW2の処理が終わったら計算結果をCompletedイベントで1のグローバル変数に書き込む
3. 次にBW1を起動する時に1のグローバル変数の内容を引数として渡す
というものですが、これだとBW1が起動するタイミングでしかデータを渡せないので
できればBW1の処理の途中でBW2の計算結果を取得できればと思ってます
Backgroundworker1(BW1)とBackgroundworker2(BW2)を用意しておいて、
メインスレッドからBW1を走らせ、BW1からさらにBW2を走らせるようにして
BW2で処理した結果をどうにかしてBW1に渡したいんですが、どうすれば
安全にできるでしょうか?
(BW1の中から更にBW2を起動できるのは確認済みです)
パッと思いついたのは
1. あらかじめグローバル変数を1つ用意
2. BW2の処理が終わったら計算結果をCompletedイベントで1のグローバル変数に書き込む
3. 次にBW1を起動する時に1のグローバル変数の内容を引数として渡す
というものですが、これだとBW1が起動するタイミングでしかデータを渡せないので
できればBW1の処理の途中でBW2の計算結果を取得できればと思ってます
143デフォルトの名無しさん
2018/12/06(木) 23:02:53.80ID:A0CG4R0v >>142
クラスを定義して BW1 で New して BW2 の起動時に渡せばいい。
BW2 では e.Argument をクラスにキャストしてプロパティや
フィールドを書き換えれば BW1 側で参照できる。
BW2 の終了を BW1 側でどうやって知るかというと
クラスに完了フラグを入れたり、待機するなら
AutoResetEvent など入れておく。
クラスを定義して BW1 で New して BW2 の起動時に渡せばいい。
BW2 では e.Argument をクラスにキャストしてプロパティや
フィールドを書き換えれば BW1 側で参照できる。
BW2 の終了を BW1 側でどうやって知るかというと
クラスに完了フラグを入れたり、待機するなら
AutoResetEvent など入れておく。
144デフォルトの名無しさん
2018/12/07(金) 07:03:19.31ID:3nrqnizA >>143
ありがとうございます
クラスやインスタンスについてはよく理解できてないんですが
・BW1とBW2の間で受け渡ししたい情報をプロパティとして持つクラスを作成
↓
・BW1の中でそのクラスのインスタンスを作ってBW2に渡したい値をプロパティにセットし、
それを引数としてBW2を起動させる
↓
・BW2側で計算が終わったらCompletedイベント内部でプロパティやフィールドを書き換える
って感じなのでしょうか?
BW2にデータを渡すのは何となく分かる気がするんですが、BW1からBW2の結果を
参照できる理屈がよくわからなくなってきました
ありがとうございます
クラスやインスタンスについてはよく理解できてないんですが
・BW1とBW2の間で受け渡ししたい情報をプロパティとして持つクラスを作成
↓
・BW1の中でそのクラスのインスタンスを作ってBW2に渡したい値をプロパティにセットし、
それを引数としてBW2を起動させる
↓
・BW2側で計算が終わったらCompletedイベント内部でプロパティやフィールドを書き換える
って感じなのでしょうか?
BW2にデータを渡すのは何となく分かる気がするんですが、BW1からBW2の結果を
参照できる理屈がよくわからなくなってきました
145デフォルトの名無しさん
2018/12/07(金) 07:40:39.74ID:kROUwqzj 俺はスレッドの同期には
スレッド1でMonitor.Waitでオブジェクトを待機
スレッド2で計算完了後渡したいデータをキューに入れる→Monitor.Pluse
スレッド1でWaitが解けたらキューを取得
以後ループ
ってやってる
スレッド1でMonitor.Waitでオブジェクトを待機
スレッド2で計算完了後渡したいデータをキューに入れる→Monitor.Pluse
スレッド1でWaitが解けたらキューを取得
以後ループ
ってやってる
146デフォルトの名無しさん
2018/12/07(金) 08:29:06.85ID:2afnIVVG147デフォルトの名無しさん
2018/12/07(金) 12:55:25.10ID:kROUwqzj148デフォルトの名無しさん
2018/12/07(金) 14:22:09.04ID:qTMW2jJh >>147
WaitHandleは.NET1.1からあるが
WaitHandleは.NET1.1からあるが
149デフォルトの名無しさん
2018/12/07(金) 16:42:40.67ID:a9TgYpl9 Dim p As New Ping()
Dim pr As PingReply = p.Send(ip, 2000)
If pr.Status = IPStatus.Success Then
ハードウエアに添付されてる特定のアプリをインストールした直後に
上記を実行すると、無限に p.Send(ip, 2000)で止まったままになるらしく。
強制的に抜け出す方法があれば教えてください。
特定アプリを削除すると正常に動きます。
Dim pr As PingReply = p.Send(ip, 2000)
If pr.Status = IPStatus.Success Then
ハードウエアに添付されてる特定のアプリをインストールした直後に
上記を実行すると、無限に p.Send(ip, 2000)で止まったままになるらしく。
強制的に抜け出す方法があれば教えてください。
特定アプリを削除すると正常に動きます。
150デフォルトの名無しさん
2018/12/07(金) 18:24:22.52ID:8lt4nerT151デフォルトの名無しさん
2018/12/07(金) 19:28:23.36ID:kK7I+myK インスタンスがインポテンツに見える
152デフォルトの名無しさん
2018/12/07(金) 19:35:23.30ID:kROUwqzj153デフォルトの名無しさん
2018/12/07(金) 19:52:03.02ID:cSzYN2du154デフォルトの名無しさん
2018/12/07(金) 20:16:52.60ID:8lt4nerT >>153
??
??
155デフォルトの名無しさん
2018/12/08(土) 17:03:31.13ID:VtLU9F2e156デフォルトの名無しさん
2018/12/08(土) 22:06:24.24ID:45hw1cdo >>149 だが、遅くなってすみません。
確かに、どんなことがあってもタイムアウトかエラーで止まるとかあるはず。
今回は、どうにも納得できないのはある。
現状は、プライベートIPに向けてPingしてるからなんともいえないけど。
Pingを外して作り直してみますね。
いろいろと、ありがとうございました。
参考になったことを感謝!
確かに、どんなことがあってもタイムアウトかエラーで止まるとかあるはず。
今回は、どうにも納得できないのはある。
現状は、プライベートIPに向けてPingしてるからなんともいえないけど。
Pingを外して作り直してみますね。
いろいろと、ありがとうございました。
参考になったことを感謝!
157デフォルトの名無しさん
2018/12/08(土) 22:16:09.79ID:pahfUmHO >>155
async/awaitだろうけど、その処理は非同期じゃないとできないものなのか?
async/awaitだろうけど、その処理は非同期じゃないとできないものなのか?
158デフォルトの名無しさん
2018/12/08(土) 22:50:58.82ID:RUYrEQD/ むしろ基本は非同期ファーストでよほどの理由がなければ同期にはしないのが現代の.NETプログラミングの常識だろう
まあVBerにそれを強制すると大惨事だろうけど
まあVBerにそれを強制すると大惨事だろうけど
159デフォルトの名無しさん
2018/12/08(土) 22:57:53.40ID:pahfUmHO >>158
それはUWPアプリの場合じゃないの?
それはUWPアプリの場合じゃないの?
160デフォルトの名無しさん
2018/12/08(土) 23:34:16.79ID:RUYrEQD/ UWPだろうとWinFormsだろうとUIスレッドを長時間ブロックしたらフリーズするのは一緒や
161デフォルトの名無しさん
2018/12/09(日) 08:33:34.68ID:rvgDVfN9 >>160
まぁ、そりゃそうだが何でもかんでも非同期処理にするのはどうかと思うぞ。
非同期って別スレッドだからスレッドの罠を分かってないヤツが実装すると危険だよ。
スキルの無いヤツほど難しい実装をやりたがる。
単純明快な実装で簡単にできるものまで。
まぁ、そりゃそうだが何でもかんでも非同期処理にするのはどうかと思うぞ。
非同期って別スレッドだからスレッドの罠を分かってないヤツが実装すると危険だよ。
スキルの無いヤツほど難しい実装をやりたがる。
単純明快な実装で簡単にできるものまで。
162デフォルトの名無しさん
2018/12/09(日) 09:27:52.83ID:QJ+QHutH >>161
ほとんどの非同期処理は別スレッドではない
システムに依頼したIOの完了を現在のコンテキストのままでやるか、
完了を待って元のスレッドへコールバックするかの違いでしかない(デフォルトでは)
長い処理の完了を待つ必要がある(でもイベントベースの非同期は面倒だからコードはシーケンシャルに書きたい)ときに
利用側が待機用スレッドを作る必要がないので、従来のBackgroundWorkerや生Threadよりずっと安全だ
ほとんどの非同期処理は別スレッドではない
システムに依頼したIOの完了を現在のコンテキストのままでやるか、
完了を待って元のスレッドへコールバックするかの違いでしかない(デフォルトでは)
長い処理の完了を待つ必要がある(でもイベントベースの非同期は面倒だからコードはシーケンシャルに書きたい)ときに
利用側が待機用スレッドを作る必要がないので、従来のBackgroundWorkerや生Threadよりずっと安全だ
163デフォルトの名無しさん
2018/12/09(日) 15:37:28.92ID:mC11Jcgj >>157
そうですね
リアルタイムの物理シミュレーションで、物理演算スレッドとは別に裏で走らせたい
重いと予想される処理があるので非同期でないと具合が悪いです(しかもその
別処理での計算結果を物理演算スレッドで使う)
物理演算スレッドと同じスレッドでその別処理を走らせると別処理の結果が出るまで
物理演算スレッドが先に進まなくて全体のパフォーマンスが悪化するんで、何とか
別処理は物理演算スレッドから更に分離してマルチスレッドにしたいと考えています
以前はメインスレッドで物理演算スレッドを実行していたせいで描画がかなり遅くなって
Backgroundworkerを使って物理演算スレッドを分離したという経緯があるので、そこに
別処理を組み込むのもBackgroundworkerでやれたら・・・と考えていました
そうですね
リアルタイムの物理シミュレーションで、物理演算スレッドとは別に裏で走らせたい
重いと予想される処理があるので非同期でないと具合が悪いです(しかもその
別処理での計算結果を物理演算スレッドで使う)
物理演算スレッドと同じスレッドでその別処理を走らせると別処理の結果が出るまで
物理演算スレッドが先に進まなくて全体のパフォーマンスが悪化するんで、何とか
別処理は物理演算スレッドから更に分離してマルチスレッドにしたいと考えています
以前はメインスレッドで物理演算スレッドを実行していたせいで描画がかなり遅くなって
Backgroundworkerを使って物理演算スレッドを分離したという経緯があるので、そこに
別処理を組み込むのもBackgroundworkerでやれたら・・・と考えていました
164デフォルトの名無しさん
2018/12/09(日) 19:44:31.49ID:rvgDVfN9165デフォルトの名無しさん
2018/12/09(日) 19:48:39.49ID:QJ+QHutH166デフォルトの名無しさん
2018/12/09(日) 19:54:44.04ID:QJ+QHutH なお、Taskがスレッドを使ってようがいまいが、それを使う側が意識する必要はない
デフォルトでは、処理の終了後に元と同じスレッドに処理が戻ってくるからね
デフォルトでは、処理の終了後に元と同じスレッドに処理が戻ってくるからね
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★5 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で ★2 [ぐれ★]
- 台湾声明 「台湾は独立した主権国家、中国は台湾を統治したことがなく、中国は口出しする権利ない」 中国が高市首相に抗議で ★7 [お断り★]
- 日経平均、49000円割れ 国賊高市を許すな [402859164]
- 【正論】有識者「高市早苗に合理的配慮をしなかった野党が悪い」 [175344491]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 日経平均、49000円割れ 国賊高市を許すな ★2 [402859164]
- 吉村はん「高市さんは発言を撤回する必要ないですよ。中国の大阪総領事が謝罪すべき」 [256556981]
- 高市政権「中国さん、日本はいつでも対話に応じるで」 [834922174]
