|
It's a custom class they created for this example (unfortunetaly didn't include it) that simply encapsulates a UdpClient and IPEndpoint object so they can be passed to the callback method as state parameter of BeginReceive (becomes IAsyncResult.AsyncState in the callback).
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rick Cook www.troschuetz.de
|
|
|
|
|
Thanks for clearing that up. I know Microsoft has the resources to produce good documentation, too bad they don't have the talent.
Thanks again.
Craig
|
|
|
|
|
Sounds like your server code closed the connection in a call from the client that was expecting a reply.
|
|
|
|
|
I'm sure this question has been asked before, but after 2 or so minutes of searching, I figured I'd ask anyways. What's everybody's opinions on good mock object libraries. I'm currently looking in to NMock, which looks pretty good. Opinions?
Thanks.
Kyosa Jamie Nordmeyer - Taekwondo Yi (2nd) Dan
Portland, Oregon, USA
|
|
|
|
|
I'd recommend you do a Google for mock objects. There is a product out there that does better object mocking than NMock but I do not remember the product name.
|
|
|
|
|
Thanks for the reply. I haven't actually downloaded it yet, but I've seen several references to DotNetMock. There doesn't seem to be very much documentation on it, though, thus my hesitency. NMock so far has been cool, if not strange in syntax, but does the trick.
Kyosa Jamie Nordmeyer - Taekwondo Yi (2nd) Dan
Portland, Oregon, USA
|
|
|
|
|
Hi,
Is it possible to get the relative path of the current process ?If yes how?
Luck is Opportunity with hardwork
|
|
|
|
|
Check out
Environment.CurrentDirectory
Application.ExecutablePath
Application.StartupPath
For a detailed description of those paths see the MSDN documentation
regards
modified 12-Sep-18 21:01pm.
|
|
|
|
|
what code i write to my form to make lines when i selected it and click button bold or italic the lins it begin bold or italic like what happend in word or this form i can make this line bold or ialik or underline
mostafasafy
|
|
|
|
|
Hello
Use RichTextBox class.
Regards
|
|
|
|
|
When I call the OCR Function through C# on a computer with office 2000 it gives an error message in trying to load the COM object. It seems to work fine with office 2003. Is there something special I need to do for office 2000.
|
|
|
|
|
Hello
Maybe that function is available only in 2003 or later. Did you revise the documentaion for that? And what error message do you get?
Regards
|
|
|
|
|
hi again guys, still same problem, this time i'll post my code:
(the previous thread : Link
<br />
m_prsAlgorithm = new Process();<br />
<br />
m_prsAlgorithm.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;<br />
m_prsAlgorithm.StartInfo.FileName = "Lottery.exe";<br />
m_prsAlgorithm.StartInfo.UseShellExecute = false;<br />
m_prsAlgorithm.StartInfo.RedirectStandardInput = true;<br />
m_prsAlgorithm.StartInfo.RedirectStandardOutput = true;<br />
<br />
m_prsAlgorithm.OutputDataReceived += new DataReceivedEventHandler(prsAlgorithm_OutputDataReceived);<br />
<br />
m_prsAlgorithm.Start();<br />
<br />
m_prsAlgorithm.BeginOutputReadLine();<br />
<br />
System.IO.StreamWriter swWriter = m_prsAlgorithm.StandardInput;<br />
<br />
swWriter.WriteLine(m_strArgList + " d");<br />
<br />
swWriter.Close();<br />
<br />
m_prsAlgorithm.WaitForExit();<br />
<br />
}<br />
<br />
void prsAlgorithm_OutputDataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e)<br />
{<br />
this.txtOutput.Text += e.Data;<br />
}<br />
the code above couses my program to freeze (just hangs), if i uncomment the code in
<br />
void prsAlgorithm_OutputDataReceived(object sender, System.Diagnostics.DataReceivedEventArgs e)<br />
and comment out the:
<br />
this.txtOutput.Text += e.Data;<br />
it works but it's not thread safe and it only shows me the output when the other process has finished...
any suggestions?
Thanks in advance,
Erik.
|
|
|
|
|
prsAlgorithm_OutputDataReceived<br /> might be executing on a different thread so you need to check and Invoke the UI thread call to transfer the data.
led mike
|
|
|
|
|
hi guys, finally i have something that works:
<br />
<br />
private void RunAlgorithm()<br />
{<br />
m_prsAlgorithm = new Process();<br />
<br />
m_prsAlgorithm.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;<br />
m_prsAlgorithm.StartInfo.FileName = "Lottery.exe";<br />
m_prsAlgorithm.StartInfo.UseShellExecute = false;<br />
m_prsAlgorithm.StartInfo.RedirectStandardInput = true;<br />
m_prsAlgorithm.StartInfo.RedirectStandardOutput = true;<br />
m_prsAlgorithm.StartInfo.CreateNoWindow = true;<br />
<br />
m_prsAlgorithm.OutputDataReceived += new DataReceivedEventHandler(prsAlgorithm_OutputDataReceived);<br />
m_prsAlgorithm.Start();<br />
<br />
m_prsAlgorithm.BeginOutputReadLine();<br />
<br />
System.IO.StreamWriter swWriter = m_prsAlgorithm.StandardInput;<br />
<br />
swWriter.WriteLine(m_strArgList);<br />
<br />
swWriter.Close();<br />
<br />
m_prsAlgorithm.WaitForExit();<br />
<br />
ProcessExitedCallback pecProcessExited = new ProcessExitedCallback(OnProcessExited);<br />
<br />
m_prsAlgorithm.WaitForExit();<br />
<br />
btnRun.Invoke(pecProcessExited, new object[] { });<br />
}<br />
i've inserted this into a function and called this function in a new thread (from the main thread) and it seems to work like a charm... does anyone know why this solved the problem?
Thanks in advance,
Erik.
|
|
|
|
|
ok this almost solved the problem
The program works perfectly if the process executed runs for a short amount of time,
but if that process works a couple of minutes than it takes a pretty long time for the redirected output to show in the textbox (output in the other process is written continuously while calculating)
any suggestions?
Thanks in advance,
Erik
|
|
|
|
|
I am sorting an array of object arrays (string,int). It will work fine is the string is only one character long, but if it is two it will error. I'm not sure why or how it errors. I have done some testing, but still don't understand how to fix it. Any help is appreciated. Thanks in advance.
private object[,] SortByFirst (object[,] RevAr) {
object[,] NewAr = new object[3,2];
for (int i = 0; i < (RevAr.Length / 2); ++i) {
int NewArLoc = (RevAr.Length / 2);
--NewArLoc;
string TestStr = RevAr[i,0].ToString();
for (int j = 0; j < (RevAr.Length / 2); ++j) {
if (i != j) {
string tempStr = RevAr[j,0].ToString();
int intTest = string.Compare(TestStr, tempStr, true);
if (TestStr.Length < tempStr.Length || (intTest < 0 && tempStr != "")) {
--NewArLoc;
}
}
}
NewAr[NewArLoc,0] = RevAr[i,0];
NewAr[NewArLoc,1] = RevAr[i,1];
}
//MessageBox.Show (NewAr[0,0].ToString() + NewAr[0,1].ToString() + "\n" + NewAr[1,0].ToString() + NewAr[1,1].ToString() + "\n" + NewAr[2,0].ToString() + NewAr[2,1].ToString());
//MessageBox.Show (NewAr[2,0].ToString());
return NewAr;
}
The inital array could look like
{ {"A",0} {"C",6} {"B",12} }
This array would work, and would be returned like
{ {"A",0} {"B",12} {"C",6} }
ps. I don't know how to post code correctly still, so sorry for the way my post looks.
Tim
|
|
|
|
|
What error message do you get?
If you use framework 2.0 you could use a sorted dictionary instead:
SortedDictionary<string, int> items = new SortedDictionary<string, int>();<br />
items.Add("A", 0);<br />
items.Add("C", 6);<br />
items.Add("B", 12);
Voila. Sorted.
---
b { font-weight: normal; }
|
|
|
|
|
It doesn't really stop the code, it's just that the finished product isn't correct if the string has more than one character. I'm still on framework 1.1.
This code is use to update revision levels. So if the current revision is A, the new one is B. So if the current one is Z, the new one is AA. We show three revision levels on our drawings. Sometimes they are in the correct order, and sometimes they are not, so I'm sorting them first before I update the revisions.
So say I have revisions 'AA', 'Z', 'Y' (in order top to bottom). It will say that the new revision is 'Z' and will order them 'Z', 'Y', 'Z', in this order from top to bottom, when it should be 'AB', 'AA', 'Z'.
This is why I'm thinking something is wrong in the sorting code I posted.
Tim
|
|
|
|
|
If you want to sort them in that way, you have to first compare the length of the strings, then compare the values. If you just compare the values, "AA" comes before "Z".
---
b { font-weight: normal; }
|
|
|
|
|
I thought that is what I was doing here, and I wrong?
int intTest = string.Compare(TestStr, tempStr, true);
if (TestStr.Length < tempStr.Length || (intTest < 0 && tempStr != "")) {
--NewArLoc;
}
I saying that the NewArLoc is equal the to the length of the array minus one. Then if the length of the string I'm working with 'TestStr' is shorter that the one I'm testing it against 'tempStr', or the value is less (value from string.Compare), then minus one. I want the lowest string value to be first in the array.............
I see what you mean now. Let me see what I can come up with. My test line isn't correct. It will test the length, and then if 'TestStr' is longer, then it will test the value of the compare, which it shouldn't. I will have to rewrite that part.
Thanks.
Tim
|
|
|
|
|
Thanks Guffa. Here is how I solved it, incase only looks at this.
int intTest = string.Compare(TestStr, tempStr, true);
if (TestStr.Length < tempStr.Length || (intTest < 0 && tempStr != "" && TestStr.Length == tempStr.Length)) {
--NewArLoc;
}
This is the portion I added to my check.
&& TestStr.Length == tempStr.Length
Tim
|
|
|
|
|
You can make it a bit more efficient by only doing the compare when needed, and check the length of tempStr instead of comparing it to an empty string:
if (TestStr.Length < tempStr.Length || (TestStr.Length == tempStr.Length && tempStr.Length > 0 && string.Compare(TestStr, tempStr, true) < 0)) {<br />
NewArLoc--;<br />
}
As the condition is evaluated using shortcut, the compare is only done if the lengths are equal and tempStr is not empty.
---
b { font-weight: normal; }
|
|
|
|
|
True. Thanks of the tips Guffa. I'm just starting, so help/tips are always appreciated.
Tim
|
|
|
|
|
How would one implement the "save value, and restore on leaving scope" mechanism in C#
i.e. the one you do in C++ as:
class IntSaver
{
public:
CIntSaver(int & i) : m_orgValue(i), m_ptr(&i) {}
~CIntSaver() { *m_ptr(m_orgValue) {}
private:
int m_orgValue;
int * m_ptr;
}
void Foo()
{
CIntSaver sve_(Repunkulator.CurrentPosition);
Repunkulator.CurrentPosition = rand();
}
IDisposable and a using (x) { ... } statement?
If so, is the "messing around with the finalizer" and Dispose(bool) still the way to go?
-- modified at 13:02 Tuesday 3rd October, 2006
We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
Linkify! || Fold With Us! || sighist
|
|
|
|
|