<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Doesn't it just depend on where you want the async to be?  On the python side or on the .net side?  You could do it all in the python side and just stick to python async methodologies.  Or you could do it in .net in which case you need to use the multi-threaded aspects of pythonnet.<div><br></div><div>-brad<div><div><div><br></div><div><div><div>On Mar 28, 2013, at 6:22 PM, Seungweon Park <<a href="mailto:swpark71@gmail.com">swpark71@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>BTW, <span style="font-size:13px;color:rgb(34,34,34);font-family:arial,sans-serif;background-color:rgb(255,255,255)">PyObject po = PythonEngine.RunString(</span><span style="font-size:13px;color:rgb(34,34,34);font-family:arial,sans-serif;background-color:rgb(255,255,255)">strCommand); returns 'null' when running "os.getcwd()", and PythonEngine.RunSimpleString(strCommand) returns '-1'.</span></div>
<div><font color="#222222" face="arial, sans-serif"><br></font></div><div><font color="#222222" face="arial, sans-serif">Currently, I'm working on Async ways to execute a python command (some commands take long to finish a task such as switch configuration, once executing a command, and returns, then gets a result later). </font></div>
<div><font color="#222222" face="arial, sans-serif">Would you give me some suggestions how/what would be best idea for Async wrapper using Python.RunTime?</font></div><div><font color="#222222" face="arial, sans-serif"><br>
</font></div><div><font color="#222222" face="arial, sans-serif">Thanks,</font></div><div><font color="#222222" face="arial, sans-serif">Spark.<br></font><br><div class="gmail_quote">On Thu, Mar 28, 2013 at 2:35 PM, Seungweon Park <span dir="ltr"><<a href="mailto:swpark71@gmail.com" target="_blank">swpark71@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<div><br></div><div>I wrote a code PythonWrapper and SimplePythonTest which uses PythonWrapper.</div><div><br></div>
<div><br></div><div>using SimplePython;</div><div><br></div><div><div>namespace SimplePythonTest</div><div>
{</div><div>    /// <summary></div><div>    /// Python Wrapper Tests</div><div>    /// </summary></div><div>    [TestFixture]</div><div>    public class PythonTests</div><div>    {</div><div>        PythonWrapper py;</div>

<div>        /// <summary></div><div>        /// PythonTests Constructor</div><div>        /// </summary></div><div>        public PythonTests()</div><div>        {</div><div>            py = new PythonWrapper();</div>

<div><br></div><div>            py.Init();</div><div><br></div><div>            PyObject po;</div><div>            po = py.LoadModule("os");</div><div>            po = py.LoadModule("sys");</div><div>
            po = py.LoadModule("psutil");</div>
<div>        }</div><div><br></div><div>        /// <summary></div><div>        /// Python Simple Test</div><div>        /// </summary></div><div>        [Test]</div><div>        public void CommonPythonTests()</div>

<div>        {</div><div>            PyObject po = py.Execute("os.getcwd()");</div><div>            Trace.WriteLine(po.Repr());</div><div><br></div><div>            py.Close();</div><div>        }</div><div>    }</div>

<div>}</div></div><div><br></div><div><br></div><div><div>namespace SimplePython</div><div>{</div><div>    /// <summary></div><div>    /// Python Wrapper via XMLRPC/Python 2.7.3/.Net for Python.</div><div>    /// </summary></div>

<div>    public class PythonWrapper</div><div>    {</div><div>        /// <summary></div><div>        /// Inter Lock</div><div>        /// </summary></div><div>        private IntPtr gs;</div><div><br></div><div>

        /// <summary></div><div>        /// Constructor</div><div>        /// </summary></div><div>        public PythonWrapper()</div><div>        {</div><div>        }</div><div><br></div><div>        /// <summary></div>

<div>        /// Initialize PythonEngine</div><div>        /// </summary></div><div>        public void Init()</div><div>        {</div><div>            PythonEngine.Initialize();</div><div>            gs = PythonEngine.AcquireLock();</div>

<div><br></div><div>        }</div><div><br></div><div>        /// <summary></div><div>        /// Load Module</div><div>        /// </summary></div><div>        /// <param name="strModule">Module Name</param></div>

<div>        /// <returns></returns></div><div>        public PyObject LoadModule(string strModule)</div><div>        {</div><div>            return PythonEngine.ImportModule(strModule);</div><div>        }</div>

<div><br></div><div>        /// <summary></div><div>        /// Execute Python Command</div><div>        /// </summary></div><div>        /// <param name="strCommand">Python Command</param></div>

<div>        /// <returns></returns></div><div>        public PyObject Execute(string strCommand)</div><div>        {</div><div>            PyObject po = PythonEngine.RunString(strCommand);</div><div>            </div>

<div>            return po;</div><div>        }</div><div><br></div><div>        public void Close()</div><div>        {</div><div>            PythonEngine.ReleaseLock(gs);</div><div>            PythonEngine.Shutdown();</div>

<div>        }</div><div>    }</div><div>}</div></div><div><br></div><div>When testing (CommonPythonTests),  it initializes and loads modules, but PythonEngine.RunString() doesn't seem to work properly. Is any something wrong in my code which gets os.getcwd()? Furthermore, I can't find the difference between PythonEngine.RunString() and PythonEngine.RunSimpleString().</div>

<div><br></div><div>Thank you,</div><div>Spark.</div>
</blockquote></div><br></div>
_________________________________________________<br><a href="http://Python.NET">Python.NET</a> mailing list - <a href="mailto:PythonDotNet@python.org">PythonDotNet@python.org</a><br><a href="http://mail.python.org/mailman/listinfo/pythondotnet">http://mail.python.org/mailman/listinfo/pythondotnet</a></blockquote></div><br></div></div></div></div></body></html>