पर स्ट्रीमवाइटर खोलने का प्रयास करते समय मोनो लटकता है मैं जो प्रोग्राम लिख रहा हूं वह इंटर-प्रोसेस संचार के लिए लिनक्स में फीफो पाइप का उपयोग कर रहा है। यह सबसे अच्छा हैकी है, लेकिन इस पर ध्यान दिए बिना मुझे समस्याएं हैं।एक नामित पाइप
if (!File.Exists(Path.GetTempPath() + "gminput.pipe"))
{
ProcessStartInfo startInfo = new ProcessStartInfo() { FileName = "/usr/bin/mkfifo", Arguments = Path.GetTempPath() + "gminput.pipe", };
Process proc = new Process() { StartInfo = startInfo, };
proc.Start();
proc.WaitForExit();
}
if (!File.Exists(Path.GetTempPath() + "gmoutput.pipe"))
{
ProcessStartInfo startInfo = new ProcessStartInfo() { FileName = "/usr/bin/mkfifo", Arguments = Path.GetTempPath() + "gmoutput.pipe", };
Process proc = new Process() { StartInfo = startInfo, };
proc.Start();
proc.WaitForExit();
}
using (StreamWriter outputPipe = new StreamWriter(Path.GetTempPath() + "gmoutput.pipe"))
using (StreamReader inputPipe = new StreamReader(Path.GetTempPath() + "gminput.pipe"))
{
Console.WriteLine("This code is never reached!");
}
सभी मैं कर रहा हूँ अगर पाइप पहले से मौजूद है जाँच कर रहा है, और यदि नहीं, उसे बनाने के लिए mkfifo कहते हैं। यह हिस्सा ठीक काम करता प्रतीत होता है, नामित पाइप सही ढंग से बनाए जाते हैं। जब भी मैं उन्हें खोलने की कोशिश करता हूं (या तो StreamWriter, StreamReader, या दोनों के साथ), प्रोग्राम बस लटकता है। कोई त्रुटि या कुछ भी नहीं। यह भी डीबगर में लटका है।
सबसे अच्छा हिस्सा है ... यह काम करता था। मेरे पास इंटर-प्रोसेस संचार काम कर रहा था और फिर यह सिर्फ अस्पष्ट रूप से रुक गया। मैंने जो कुछ भी देखा है उसे छोड़कर मैंने सबकुछ बाहर टिप्पणी की, मेरे सिस्टम को पुनरारंभ किया, पाइप को फिर से बनाया, आदि का कोई फायदा नहीं हुआ। क्या देता है? क्या मेरे कोड में कुछ गड़बड़ है या सिस्टम में हस्तक्षेप करने पर कुछ और है?
मुझे नहीं पता कि यह आपकी मदद करेगा या नहीं, लेकिन मुझे अतीत में समस्याएं थीं जहां मैंने पथ को एक साथ जोड़ दिया है। एक दिन यह काम किया, अगली नहीं! मेरे लिए समाधान पथ पर पथ। कॉम्बाइन (...) का उपयोग करना था, इसने असंगत व्यवहार को रोक दिया। –