Pythonスクリプトによって書き込まれたC#アプリケーションの値を読み取るために、PythonとC#の間でプロセス間通信を行いたいとします。メモリマップされたファイルの値が読み取りアクセス後に0に設定されています
MemoryMappedFile mmfSimPro = MemoryMappedFile.CreateOrOpen("MyFileMappingObject_SimPro", 20);
MemoryMappedViewAccessor accessorAxesSimPro = mmfSimPro.CreateViewAccessor(0, 20);
for (int i = 0; i < axesSimPro.Length; i++)
axesSimPro[i] = accessorAxesSimPro.ReadSingle(sizeof(float) * i);
は、それが正常値を読み取り、それの後にそれがゼロにメモリマップされたファイル内の値を設定します。 は、C#で、私は、メモリマップトファイルのクラスを使用しています。だから私がメモリマップされたファイルをもう一度読み込んだら(まだPythonスクリプトで上書きされていない)、私はゼロだけを読みます。どうすればそれを防ぐことができますか?
def WriteAxes():
shmem = mmap.mmap(0,256, "MyFileMappingObject_SimPro",mmap.ACCESS_WRITE)
struct.pack_into('f',shmem,0,_ctrl.Joints[1].CurrentValue)
struct.pack_into('f',shmem,4,_ctrl.Joints[0].CurrentValue)
struct.pack_into('f',shmem,8,_ctrl.Joints[2].CurrentValue)
struct.pack_into('f',shmem,12,_ctrl.Joints[3].CurrentValue)
struct.pack_into('f',shmem,16,_ctrl.Joints[4].CurrentValue-90)
shmem.close()