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

■ このスレッドは過去ログ倉庫に格納されています
2023/03/26(日) 07:31:00.51ID:2LMOL5Ty0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を3行冒頭に書くこと(1行分は消えて表示されない為、もう1行は予備)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください。見かけたらNGしましょう。相手してしまったらあなたも荒らしです
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part157
https://mevius.5ch.net/test/read.cgi/tech/1669349768/
■関連スレ
C#, C♯, C#相談室 Part97
https://mevius.5ch.net/test/read.cgi/tech/1671585518/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
初心者はまずVisual Studioを使いましょう。なおVisual Studioの使い方などに関しては各バージョンで違うので専用スレでお願いします
http://www.visualstudio.com/downloads/
■情報源
https://learn.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://learn.microsoft.com/en-us/dotnet/standard/class-libraries
https://referencesource.microsoft.com/
https://source.dot.net/
・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
++C++; // 未確認飛行 C
https://ufcpp.net/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2023/05/09(火) 20:43:33.82ID:ZCATFg/N0
質問なんですが
formのbutton1.textをテキストボックスから取得したいのですが、
テキストが長い場合、ボタンのテキストが改行されてしまいます

表示が後半隠れてしまうのは別に構わないのですが、
改行がおこるとテキストがボタンの上側に移動してしまいます
button1.textを改行しないようにできないでしょうか?
2023/05/09(火) 22:36:11.30ID:ZhePtJGs0
ボタンのPaintイベントで自前描画すればOK
2023/05/09(火) 22:41:53.48ID:U2HEifZi0
button1.AutoEllipsis = true;
2023/05/10(水) 10:41:28.62ID:B1N+exWkM
どなたか教えてくださいC#です
public class Person
{
public Name Name { get; set; }
}
public class Name
{
public string NameText { get; set; }
}
こういうクラスがあったとして、

var p = new Person
{
Name = {},
};
Console.WriteLine(p.Name);
これはnullが出力されるんですが、構文解析時のName={}の右辺はどういう評価をされてるんでしょうか?
また
var p = new Person
{
Name = {NameText=""},
};
これもコンパイルは通りますが実行時にObject reference not set to an instance of an object.で落ちます
Name = {NameText=""},
の{NameText=""}は構文解析時にどういうモノとして扱われてるんでしょうか?
本来はName= new Name{NamText=...}とするところで、new {クラス名}を書き忘れたらビルドが通っていたのでなんだろうと思った所存です
2023/05/10(水) 11:20:13.56ID:iQXLAALm0
オブジェクト初期化子
1つ目のケースは初期化するプロパティがないので何もしない
2つ目のケースはこれと同じ意味になる
var p = new Person();
p.Name.NameText = "";

https://ufcpp.net/blog/2016/12/tipsobjectinitializer/
2023/05/10(水) 11:21:23.96ID:tkTpg3dz0
>>460
レスありがとう、Paintイベント追加で自力でやるのはけっこう大変そうですね

>>461
ありがとう、...省略はできたけど、文字は上側に寄ったままでした

button1.Padding.Topに4ぐらいいれたら解決しました
2023/05/10(水) 11:27:39.61ID:NYVeTygZM
>>463
なるほど!ありがとうございます!
いやーこれはコンパイル時に落としてほしい…
2023/05/10(水) 11:28:45.20ID:qs6QvCEc0
Formsで独自描画はバッドノウハウに近いと思う 
スケーリング考慮してないのばっかり
2023/05/10(水) 13:49:34.03ID:iQXLAALm0
>>465
AのコンストラクタでNameがnewされてたら問題ないわけだし使い分けでしかないね
nullableを有効化しとけばこのケースだとAのNameがnull許容でもnull非許容でも警告出してくれるよ
468デフォルトの名無しさん (ワッチョイ c23d-Lyct)
垢版 |
2023/05/10(水) 14:23:44.58ID:6sAnxqBz0
C#でASP.NETでHTMLコード書くにはどこいじればいいの?
469429 (ワッチョイ 9354-ouLR)
垢版 |
2023/05/10(水) 17:05:27.60ID:QPN4FwhI0
私にとっての解決後も議論があったようですが、
Windows Defender を無効化 ( Windows Defender の [除外] に、コピー先フォルダを登録する ) してから、1回も発生していません。
for(int i = 0; i < 100; i++){}
での 100回ループテストを何度か行っても発生していないので、自分の中では解決済みになっています。
2023/05/10(水) 18:11:17.94ID:rAs2Y7NDp
ファイル内容変更したからウイルスチェックが走ってんじゃん
ってオチかよw
2023/05/10(水) 18:54:24.51ID:6aE3wdSe0
オチかよも何も、最初からそういう話だったのに
DisposeがちゃんとやってないんだろとかOSの遅延がうんたらとか頭でっかちが騒いでるだけやで
2023/05/10(水) 18:59:46.60ID:KHK6MiQv0
asyncawaitってスレッドセーフのメソッドじゃなくても使っていんだっけ?
2023/05/10(水) 19:16:24.65ID:PlKEk/pSa
>>456で結論書いてやったのにまだやってたのか
2023/05/10(水) 19:57:37.80ID:n33wvc2tp
>>473
全く結論になって無いよあれ
単なる対症療法なだけだろw
2023/05/10(水) 20:01:05.91ID:PlKEk/pSa
その対症療法が唯一の治療法なんだがまだそれもわからないのかよw
2023/05/10(水) 20:03:31.18ID:PlKEk/pSa
リソースを占有できるのがそのスレッドだけではない場合
つまり今回と同様の場合だな
原因がセキュリティソフトかバックアップソフトか何かは全く関係ない
時間を置いて何度かリトライしてそれでもだめなら例外を投げる
基本中の基本だぞ?
2023/05/10(水) 20:19:03.60ID:QPN4FwhI0
議論再燃させて申しわけありません。
消えます。
2023/05/10(水) 21:49:28.98ID:KHK6MiQv0
みんな参加できるし
いい内容だと思う
2023/05/10(水) 22:26:34.42ID:6aE3wdSe0
>>1
> 議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
2023/05/10(水) 23:13:27.93ID:qs6QvCEc0
>>475,476
今回の場合(>>429)は、ファイルを一旦解放するのが問題なんだから、>>458の方法で上手く行くでしょ
2023/05/10(水) 23:27:09.51ID:qs6QvCEc0
ファイル削除のことならリトライは必要だけど、今回のと関係ないね
2023/05/10(水) 23:39:29.79ID:+U2L2taI0
てか、ファイル操作するのに、排他しなきゃだよな?
一度手放したら他のプロセスに横取りされちゃうだろ
2023/05/10(水) 23:54:07.74ID:of34847N0
もう一度再現させた上でロックしているプロセスが本当にWindows Defenderだったのか確認しない限り不毛な議論では?
2023/05/11(木) 02:59:54.64ID:YOUU3VFS0
っていうかどうしたいんだろ
コピー後のファイルを
誰かがつかんだままにすれば
似たようなエラーはいつでも
起こせるし起きちゃうじゃん

それがこのアプリにとってレアケースでないなら他アプリがつかんだママのときの動作を仕様で定義するべきだと思う
2023/05/11(木) 03:21:28.69ID:rPH4vL1P0
>>484
>>429のソースを見るに、ファイルの最終書き込み時刻を保ったままコピーしたいんでしょうよ

コピー先のファイル作成とタイムスタンプ操作を1回の排他モードオープン〜クローズの間にまとめてやれば
他のプロセスに割り込まれようが無いし、その後につかまれてもやること終わってるから問題無い
2023/05/11(木) 08:30:37.64ID:deoSAjL+a
>>481
今回のセキュリティーソフトわ切るやり方こそ対症療法だろw
2023/05/11(木) 10:12:30.60ID:NldGOlLod
>>458
これ知らなかったんだけど、実際に存在する?
コード書いてもでてこないんだけど
ちなみにGetLastWriteTime はあるようだ
2023/05/11(木) 10:37:35.73ID:rPH4vL1P0
>>487
.NET7で追加された
.NET6以前はP/InvokeでWin32API使えば同等のことは出来るけど時刻の扱いが面倒臭いね
2023/05/11(木) 10:44:53.88ID:ihHVpLbGp
そもそもファイルのタイムスタンプを合わせる仕様が本当に必要なのか小一時間
2023/05/11(木) 10:54:15.13ID:NldGOlLod
>>488
thx
>>489
他人の仕様にケチ付けちゃだめ
2023/05/11(木) 11:24:35.10ID:ihHVpLbGp
タイムスタンプなんて危ういものを何に使おうってんだ?
生成時刻が重要ならファイル名に組み合わせしまうとか
他の方法の方がよっぽど確実だぞ
2023/05/11(木) 12:16:13.48ID:RpUziWGf0
DateTime.ToFileTimeみたいな関数あったはずだからWin32利用したら案外簡単
2023/05/11(木) 12:31:50.44ID:NldGOlLod
コードも提供せずにこういうことやりたいと言ってるわけでもないし、
今回問題となっている部分についてだけで話すればいいんじゃないの
質問者が他のやり方ないですかみたいな質問ならまだしも
回答者が勝手に仕様かえて変な回答しないほうがいいと思うなぁ
2023/05/11(木) 12:45:05.52ID:OsVl9AaP0
俺は基本更新時刻の新しい順で並べるからファイルやフォルダのコピーごときでファイルスタンプは変わって欲しくないな
495デフォルトの名無しさん (ブーイモ MMdb-vs1K)
垢版 |
2023/05/11(木) 12:56:38.62ID:CPAv1ED5M
コピー元のタイムスタンプを維持したいユースケースなんていくらでもあると思うんだけどな
cp -pのように最初からそういうオプションが用意されてないのが不思議なくらい
2023/05/11(木) 13:00:19.05ID:8tWYoMH60
>>491
お前の考えなど知らん
コピー先のファイル名はそのままである必要があるんだよ
2023/05/11(木) 13:03:05.25ID:azf3P6SKM
あれ、File.Copy()でコピーすればファイルの更新時刻とかはコピー元ファイルのままだと思ってたんだけど、違うの?
わざわざLastWriteTimeを転記する処理なんか不要じゃないかな
2023/05/11(木) 13:20:41.79ID:YOUU3VFS0
結局なんで死んでんだっけ?
スレッドセーフじゃないメソッド呼んでたから?
2023/05/11(木) 13:22:58.00ID:Kl8HQqiW0
FileStreamを開放したところでDefenderに掴まれてるから
500デフォルトの名無しさん (ワッチョイ 927f-Ujgo)
垢版 |
2023/05/11(木) 13:26:07.70ID:IsUfqIsW0
>>470
ノートン先生が毎回俺がコンパイルしたexe没収しやがるのな
2023/05/11(木) 13:28:13.33ID:/kketneYM
gdriveの横槍でvsのビルド失敗しやがるからな
2023/05/11(木) 14:04:15.95ID:/lX/zRJGp
>>496
だからファイル作成時刻が重要ならタイムスタンプに頼る様な仕様は事故のもとだから仕様から考え直さないと後で泣くのはおまえさんとこだって話だw
503デフォルトの名無しさん (ワッチョイ 927f-Ujgo)
垢版 |
2023/05/11(木) 14:06:17.73ID:IsUfqIsW0
ファイルの作成時刻が大事で、ファイル名も変えたくないなら
実データの内に時刻もっておいて逐次参照するしかないか
2023/05/11(木) 14:15:18.91ID:5HC1/c5B0
タイムスタンプをバージョン番号にするのが一時流行ったな
2023/05/11(木) 14:18:46.36ID:NldGOlLod
>>497
コード提供部分にはない仕様でコピー中の進捗管理もしたいからブロックコピーみたいな事したいんじゃないのと思ってるけどね
2023/05/11(木) 16:32:36.54ID:Kl8HQqiW0
ファイルコピーツールでタイムスタンプ類もそのままって普通のことでは?
2023/05/11(木) 16:59:27.45ID:OsVl9AaP0
そうだよ
その当然のことがC#だとなぜか上手くいかないねってマヌケな話を続けてるのよ
2023/05/11(木) 17:30:13.71ID:Kl8HQqiW0
違うよ、Defenderに割り込まれて失敗してただけなのに、C#が悪いとか実装だよりがうんたらとか明後日の話してるだけ
あとなぜかタイムスタンプ同期を敵視するおかしな輩
2023/05/11(木) 17:43:23.58ID:rQf2HOBdp
タイムスタンプって言えば、マイナンバーの他人データ事件
510デフォルトの名無しさん (アウアウエー Saaa-tcUg)
垢版 |
2023/05/11(木) 20:37:45.66ID:WmrOv4hCa
asp.net 7.0/razorでTest.razorファイルを作って中身を
@page "/test/{text}"
<h1>Hello, world!</h1>
とすると、http://localhost/test/aaaaaaaは期待通りTest.razorにアクセスするんだけど
http://localhost/test/ にアクセスしようとするとエラーページ(app.razorの<NotFound>)に飛んでしまいます
エラーページに飛ばずにTest.razorに導くにはどうしたらいいのでし
2023/05/11(木) 20:50:19.55ID:WmrOv4hCa
自決。重複指定できるんだね
@page "/test/{text}"
@page "/test/"
2023/05/12(金) 05:08:25.71ID:wvdezX0Z0
ループしつつ例外来たらリトライぐらいしかないんだな
ファイルアクセスって
2023/05/12(金) 06:06:11.81ID:knxa7qRm0
絶対に他のプロセスがアクセスすることが無いファイルでもなきゃそうだろうね
2023/05/12(金) 10:06:17.76ID:6p7rgQrNp
一度握ったら離さない様にすれば良いだけ
まあ、握るまで待つ事はあるだろうけどさ
2023/05/12(金) 10:09:45.59ID:6p7rgQrNp
ファイルロックくらいしろって事でFA
2023/05/12(金) 20:52:48.39ID:QyvjIFa10
タイムリーな話題

Microsoft Defender がファイルコピー速度を大幅に低下させるというテスト結果
https://security.srad.jp/story/23/05/11/212256/
2023/05/13(土) 11:11:48.89ID:tW4K4KGI0
当たり前の話じゃないの?
アンチウイルスって実行ファイルの中身チェックするのが仕事なんだし
2023/05/13(土) 12:02:01.86ID:7xfulSMu0
>>517
コピーされるファイルも実行ファイルの中皆の?
2023/05/13(土) 12:58:27.54ID:WLwqntQA0
別にチェックするのは実行ファイルだけじゃ無い
基本的には全部

拡張子変えて実際は実行ファイルって場合も有る

特殊な方法で画像や音声ファイルに別ファイルを入れる事も出来る
普通に開いても画像や音が流れるけどやけにファイルサイズ大きい
2023/05/13(土) 14:46:09.37ID:mZrGEceU0
除外指定されてないもの全部検査対象だよな
2023/05/13(土) 15:08:50.76ID:xlpBDV6S0
んでウィルスでもないものも消していってくれるし
2023/05/14(日) 08:52:03.33ID:kc3awa8x0
>>428
非同期I/Oについて以前別件で調べていたページをブラウザで開いたまま放置してて、
そこを読んだら、
・FileStreamは~Async()メソッドを呼ぶだけだと、同期メソッドをTask.Runしているイメージと同じ
・非同期IOにするには、FileStreamのコンストラクターでuseAsyncをtrueにする
とあった。
2023/05/14(日) 11:04:56.63ID:8prSF4JO0
そもそもIOって物理的に非同期にできんのかな?
って疑問はある
ファイル名(パス)を変更するとして
それが既存と被らないことをチェックするためには
HDD全部が排他対象になっちゃうと思うんだけど・・・?

世の中には頭のいい人がいるからな
Windowsもうまいことなってるのかもしれん
2023/05/14(日) 11:24:11.66ID:C7+mn9jn0
アホすぎる
基本情報技術者試験からやり直せ
2023/05/14(日) 11:25:33.88ID:YHEEjM6QM
>>524
マジで?載ってる?
2023/05/14(日) 11:30:50.36ID:cZZGCVt9M
FileStreamの~Async()メソッドの話をしているのに
ファイル名を変更する話をし始める人
2023/05/14(日) 13:29:51.43ID:8prSF4JO0
>>526
あ、そっか
やっぱりそこは
どうにもならねえんだよな
2023/05/14(日) 13:35:41.81ID:8prSF4JO0
まずIOいじるときは
プロセスセーフである必要があって
それをサポートするAPIはないと
次にスレッドセーフである必要も
あってそこはAPIがあるのと
プロセスセーフの仕組みに載せてしまってもよい
みたいな?
2023/05/14(日) 15:32:18.00ID:cBUUr2ypd
別に考えるのは悪いことじゃないけどここで書くような事か?
チラシにでもかけよ
2023/05/14(日) 16:46:00.64ID:AbKJzFQD0
>>523
出来るも何もむしろ必須レベル
正常なディスクであればファイルIOは即終わるが壊れかけとかだとめちゃくちゃ時間かかる事もある
要するに完了時間は不定だから多数に公開しようとしたらファイルIOはWin32のオーバーラップを利用した非同期化は必須
C#であれば手軽に使えるasync版もあったはずだが
2023/05/14(日) 18:25:49.02ID:8prSF4JO0
>>530
なんかごちゃごちゃうっせーけど
OSとAPIに任せて勝手にやってくれるわけではないよね?
2023/05/14(日) 19:42:00.49ID:LqBBoBzl0
やってくれてなかったらOSもプロセスもディスクアクセスのたびに死んでるわ
2023/05/14(日) 21:25:59.89ID:8prSF4JO0
>>532
だから死んでるじゃん
エラー出して
ハンドリングはしてないよね?
2023/05/14(日) 21:34:27.06ID:pb1Dbmn7M
スレ伸びてるなと思ったら荒れてたのか
スルーしたほうがいいのかな?答えたほうがいいのかな?
2023/05/14(日) 23:37:37.55ID:LqBBoBzl0
ハンドリングしてるからエラー出せるんだろうに
2023/05/14(日) 23:52:11.86ID:TlAvKTIL0
デバイスとファイルシステムの区別が付いてないし基本的な知識が欠けてる
相手にするだけ無駄かと
スレチだし
2023/05/15(月) 01:10:46.89ID:LL0MvYiW0
まあふらっとだしC#にかかわる範囲で答えてやれば良いとは思うが

そもそも>>523は非同期IOってどんなもんだと思ってるんだ
2023/05/15(月) 03:01:17.91ID:MbkFonvu0
>>535
プロセスセーフにはならないってことだよね
2023/05/15(月) 03:14:56.69ID:MbkFonvu0
streamreaderwriterで死ぬってことはOSの機能じゃなくて
あくまでアプリ側がそう組んだからそう動くってことでおk?
2023/05/15(月) 10:50:41.17ID:pV2Ms8mh0
>>531
勝手にやってくれない?
お前はDeviceIOControlでも利用して一々マニュアルでハードウェア制御してるのかよ
普通に全部勝手にやってくれるよ
2023/05/15(月) 15:46:46.09ID:rEJ0AvWA0
ReactiveExtensionsって現場では結構使われてるんですかね?
2023/05/15(月) 23:44:43.69ID:7dwhbD/A0
>>530
Win32APIで最近非同期のコードを書いているけど、
ReadFile()/WriteFile()が途中までで返ってくることも踏まえてループ処理にするとして、

1) ReadFile()/WriteFile()で同期(OVERLAPPED構造体なし)
→同期
2) ReadFile()/WriteFile()で非同期(OVERLAPPED構造体あり)、WaitFor~、GetOverlappedResult()
→スレッドを明示的に手放す?
3) 1)をCreateThreadpoolWork()
→スレッドプールのスレッド内で同期処理
4) 2)をCreateThreadpoolWork()
→スレッドプールのスレッドで動作するが、途中でスレッドを明示的に手放す?
IOCPならその間に他のスレッドが動きそうだが、スレッドプールAPIでもそうなるか知らない。
5) CreateThreadpoolIo()、ReadFile()/WriteFile()で非同期(OVERLAPPED構造体あり)、
IoCompletionCallbackで続きのReadFile()/WriteFile()を行う
→これが一番効率的だと思う。

最近5)で書いてる。めんどくさい。うまく動かなかった時に調査のために同期処理にしてみることができない。
C#のasync/awaitは神。
.NET Framework/.NETのライブラリがどこまでやっているのかまだソースをほとんど調べていない。
543デフォルトの名無しさん (ブーイモ MM7f-yLof)
垢版 |
2023/05/16(火) 15:21:40.99ID:x5Idn1prM
>>542
ReadFileEx()/WriteFileEx()に対して何かアドバンテージあるの?
2023/05/16(火) 23:17:52.90ID:ArIN9ivM0
>>543
ReadFileEx()/WriteFileEx()のlpCompletionRoutineを使ったことはないけど、
LPOVERLAPPED_COMPLETION_ROUTINEのページに、
システムが完了ルーチンを呼び出すたびに、アプリケーションのスタックの一部が使用されます。 完了ルーチンが追加の非同期 I/O とアラート可能な待機を行うと、スタックが大きくなる可能性があります。
とあるから、完了ルーチンでさらに非同期I/Oを繰り返すと、スタックがあふれる恐れがあるんじゃないかなあ?
545デフォルトの名無しさん (ブーイモ MM1f-yLof)
垢版 |
2023/05/17(水) 00:05:39.06ID:UJN2K8xqM
>>544
なるほど
.NETのFileStreamもReadFile()やWriteFile()を使ってるのはそれが理由かも
2023/05/17(水) 02:11:11.09ID:BW67Dsb50
ファイルIO飽きたぁ
2023/05/17(水) 09:38:13.97ID:J+vPZ/2W0
>>545
いや完了ルーチン内で更に完了ルーチン呼び出しするなんて実装メリット無さ過ぎて普通しないからそれが理由ではない
単純に最も効率的な非同期IOはスレッドプールを利用した完了ポートだからだよ
C#のasync awaitも完了ポートベース、nodejsもWindows版では完了ポートベース
2023/05/17(水) 09:41:37.77ID:x4D/IoKq0
>>546
どうした?
実はこれまで組んだファイル周りの実装がまずいことに気が付いたのか?

プロセスセーフまで保証しろって言われたら正直俺もやってねえ
っていうかもっかいやってくれればええやんってポリシー

だったけどこのスレ見たやつが指摘してきた(笑)
面倒くせえw
2023/05/17(水) 09:47:10.85ID:J+vPZ/2W0
プロセスセーフってなんだ?
一つのファイルを複数プロセスで扱う場合においても別に難しい事はないけどな
排他モード指定したら良いだけなんだから
2023/05/17(水) 09:52:57.56ID:BC9U1gYmp
>>549
一度に完了しないでチマチマ複数回アクセスする類いだろ
2023/05/17(水) 09:56:54.00ID:x4D/IoKq0
>>549
いや、他のやつにアクセスされてると死ぬねん
その時いつまで待てばええのか仕様がないねん
タイムアウト付けるとじゃあその時できんかった処理をいつやるのか仕様を考えろって言われて辛いねん
さらにそれが終わる前に他の処理が進んでしまってもまずいときあんねん
こんなレアケース相手にしとうなかったねん
2023/05/17(水) 10:04:34.84ID:J+vPZ/2W0
>>551
それファイルIOの問題ではないな
非同期プログラミング全般の問題
2023/05/17(水) 10:04:36.01ID:BC9U1gYmp
まあ、昨今のマイナンバー絡みの誤配信あるし
つまらないレアケースを突いて来る奴増えたよな
2023/05/17(水) 10:07:50.36ID:x4D/IoKq0
いい手を考えた

それってこの間作ったやつも
同じですよね?
解決しているのであれば
対策方法を教えてほしいです

って比較的暇そうな
プロジェクトも誘爆させてみる
2023/05/17(水) 10:20:18.08ID:r4L2F7830
元々はファイルクローズ直後に約10%程度日付の書き換えに失敗するという質問で
原因はDefenderと結論付けて解決している
対策はリトライ、検索除外、ファイルを閉じる前に日付を書き換えるなどが上がっている

なお非同期書き込みは関係ない
2023/05/17(水) 10:26:42.10ID:GG5VHMy50
>>551
レアケースでもなんでもなくて、当然設計段階で考慮しとくべき話
コーディング以前の問題

>>553
レアケースでも、それが発生する可能性がある以上、発生したらどうするか考えとかないとダメ
エラーで落とすとかどうもしないとかも含めてな

つかマイナンバーのやつは、レアケースというほどレアな条件が重なってるとは思えん
たんなる設計不良とテスト不足だろ
2023/05/17(水) 10:27:49.23ID:BC9U1gYmp
>>555
Defenderが変化のあったファイルを即握るから一度手放したら持って行かれるってのが原因だよ?
この場合Defenderは一例に過ぎない、他に同じ様なプロセスが走ってたら同じ事
2023/05/17(水) 10:33:05.14ID:ayW9U2wIM
>>557
そう書いてるけど何か?
非同期書き込み関係ある?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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