こんばんは、yoku0825といいます。
原因ぽいものは全くわからないのですが、
>---検証内容---
> ・VS2012でのデバッグ時に、ステップ実行でも発生。> ・File.Delete→INTO OUTFILEの間に、Sleepを5秒挟んだりしても発生する。
これは ファイルが存在している(?)にも拘わらずFile.ExistsがTRUEで抜けてくるのが問題だと思うので、
スリープを挟むとしたらINTO OUTFILEとFile.Delete(File.Exists)の間がいいのでははないでしょうか?
1. ファイルの存在チェック
2. 存在したら消す
3. SELECT .. INTO OUTFILE ..
-- ここでブレーク --
4. ファイルの存在チェック
5. 存在したら消す
6. SELECT .. INTO OUTFILE ..
ブレークした時に、OSから見てもファイルが存在するのにFile.ExistsがFALSEになるのであれば
オブジェクトを使いまわしていないか(File.DeleteしたあとのFileオブジェクトが何を返すのかとか)とか、
OSから見てファイルがまだ存在しないのなら、mysqldのスタックなど見てみるといいのかもしれません。
5.0も5.6もselect_export::prepareの割と早い段階でcreate_fileを呼んで(ファイルだけ先行して作成される)いるので、
そこは変わらないような気がするのですが。。
yoku0825,