File.CreateFile は StreamWriter を介して、最終的に FileStream コンストラクターを呼び出し、FileMode.Create、FileAccess.Write、および FileShare.Read を渡します。これは、ファイルを作成、アクセス、共有するためのごく普通の方法です。ファイルを作成したばかりなので、確かに書き込みアクセスが必要です。そして、あなたがファイルを書き込んでいる間に他のプロセスがファイルを読んでも大丈夫です。
あなたが求めていることは可能ですが、File.CreateFile() は使用できません。最初に FileStream (Create、Write、および FileShared.ReadWrite) を作成し、それを StreamWriter コンストラクターに渡す必要があります。これで、あなたと別のプロセスの両方がファイルを書き込むことができます。
これはややこしいことですが、あなたと他のプロセスが同時にファイルに書き込むとします。これは先着順で、ファイルにはプログラムの出力が含まれ、他のプロセスの出力とランダムに混合されます。それが起こった後、ファイルが読み取り可能になる可能性はほとんどありません。
これが起こらないように、意図的に自分でファイルに書き込まないようにするなどのことをしたいかもしれません。これは非常に珍しいことですが、機能させることができます。その場合、より大きな問題は、そのファイルが存在することを他のプロセスが検出することです。ファイルの作成を他のプロセスに任せれば、おそらくすべてうまくいくでしょう。