|
Put using System.IO; at the beginning of your code file. There should already be some similar statements e.g. using System.Windows.Forms; .
The using directive permits the use of types in a namespace without having to specify the namespace i.e. you can simply write StreamWriter instead of System.IO.StreamWriter.
www.troschuetz.de
|
|
|
|
|
No it doesn't, but fortunately the KeyPressEventArgs object that gets passed to an event handler for KeyPress event contains this property.
void textBoxXX_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar.IsNumber)
e.Handled = true;
}
www.troschuetz.de
|
|
|
|
|
"Method 'char.IsNumber(char)' referenced without parentheses
"
is showing now when I do that
|
|
|
|
|
Hi all,
I want to create a MDI Application as below :
I have a main form.
All child forms opened are in main form.It's OK.
I want : All grandchild forms(opened from child forms ) are also in main form.
Can someone help me ?
Thank !
To love in vain more than love no one.
|
|
|
|
|
Hi,
One immediate solution is to the pass the reference of the main MDI form to all the child forms. You can set the MdiParent property of the grand child form to the main MDI form.
Regards
SGS
|
|
|
|
|
Hi,
I mean I want the grand child form (showdialog() from the child form) is still in main form.
Thank for your reply !
To love in vain more than love no one.
|
|
|
|
|
hi all,
I want to display the SQL Server Names in my Network and display the database names according SQL Server..
How do I do that?
please reply if anybody know the answer..
Thanks in advance..
|
|
|
|
|
I've been looking into this and haven't been able to find any way of doing it in .Net either so if anyone can help it would be appreciated.
Kev
|
|
|
|
|
|
I asked for a .Net way of doing it, these guys are using SQLDMO which is a com object so a bit less of the sarcasm next time.
Also there have been reports of SQLDMO hanging if there is not a network cable in your machine, not had this happen to me but it's worrying. Also, it does not detect instances on your machine, only instances on other machines so if you are running it from the server you want to use it's not gonna work.
I know that .Net 2.0 has built in functions to do this but i'm not allowed to use it as it's still in Beta.
Kev
|
|
|
|
|
Sarcasm is my middle name, no offence intended
The link to the CP article has 4 methods to do this (one being SQLDMO) - the one chosen by the article author was not SQLDMO - it was ODBC and PInvoke.
|
|
|
|
|
How to find monthly resource utilization from microsoft project server 2003 and disply it in webform .I am using asp.net and C# language.Please help me as fast as possible.Feel free to mail the code at sathesiddharth@gmail.com
Thanking u in advance,
Siddharth sathe
sidd
|
|
|
|
|
I am currently binding a textbox to a property "Name" in a custom class.
Code:
textBoxExt1.DataBindings.Add("Text", myClass, "Name");
The binds works, however it appears to only update the property when I leave the textbox.
Is there any way I can get the binding to update the property when the TextChanged Event of the textbox is fired?
|
|
|
|
|
Updating the property value when the control loses focus is the correct behavior whether you're binding to a property (using a PropertyManager ) or to a data field (using a CurrencyManager ). Changing this behavior is possible, though not recommended. Actually setting the value is mostly consistent throughout most programs, committing only after losing focus or purposefully committing a change or changes (like clicking a button or an accelerator).
You'll need to use reflection to invoke the protected BindingManagerBase.PushData method, which should work:
void Commit()
{
BindingManagerBase bindmgr = textBox1.DataBindings[myClass, "Name"];
MethodInfo method = bindmgr.GetType().GetMethod("PushData",
BindingFlags.NonPublic | BindingFlags.Instance);
if (method != null)
method.Invoke(bindmgr, null);
} Call Commit with each key press, for which you could override OnTextChanged in your extended control or handle the TextChanged event from an external source (like a Form or UserControl ). There are other methods you could override, so I urge you to read the member documentation for the Control class in the .NET Framework SDK.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
|
Good day!
I'm currently working on a client/server program.
Commonly servers are running a thread that continually loops to listen and accepts client socket connections. I have this thread that listens for connections, and it works fine, but cpu usage reaches 100%!
Is there any possible way to create a server that does not require such heavy cpu usage?
thanks
|
|
|
|
|
What kind of socket do you use?
A blocking socket should not produce high cpu usage, because each loop waits for one connection.
<br />
while(isRunning){<br />
activeSocket = listeningSocket.Accept();<br />
StartNewThreadAndDoSomething(activeSocket);<br />
}<br />
An asynchronous, non-blocking socket does not need a loop at all. You just tell it to begin listening, and then wait for an event. If you put socket.BeginAccept into a loop, the effect you described would happen...
_________________________________
Vote '1' if you're too lazy for a discussion
|
|
|
|
|
By "socket.BeginAccept" did you mean socket.Receive()?
public void listensend()
{
while(keepalive)
{
byte[] buffer = new byte[1024];
int rcount = sourceSocket.Receive(buffer,buffer.Length,0) ;
...
If so, I really did placed it inside a loop. this method listensend is the thread that runs for the client (the "StartNewThreadAndDoSomething")
but wasn't this the right thing to do? I mean how does the server keep on listening for client messages when it is not in a loop?
thanks i appreciate the reply
|
|
|
|
|
It sounds as if your socket has got switched into non-blocking mode. This might have happened if the framework has called an asynchronous checking function (WSAEventSelect) on your behalf. I think this is pretty unlikely, though.
For high-performance servers, it's generally better to use asynchronous I/Os. This normally allows a small pool of threads to serve a large number of requests.
In particular reference to this code, I'd recommend creating the buffer before the while loop, not creating a new buffer on every iteration. You're likely to end up spending far longer in the garbage collector than necessary.
Stability. What an interesting concept. -- Chris Maunder
|
|
|
|
|
thank you. I'll move the buffer creation.
I still don't have much of an understanding to blocking/non-blocking mode. If it is set to non-blocking mode... then will it surely consume 100% cpu usage?
|
|
|
|
|
Mike Dimmick wrote:
In particular reference to this code, I'd recommend creating the buffer before the while loop, not creating a new buffer on every iteration.
I have tried doing as you have suggested and here is the problems that I have encountered...
If I receive a 1st message of "ABCDEFGHI," everything works fine.
If I receive a 2nd message of "ABCDEFGHIJKLM," the buffer is still correct.
BUT if next i receive a shorter message, say "1234," then the current buffer will not be correct, having "1234EFGHIJKLM."
I just wanted to share this tidbit. ^^
|
|
|
|
|
The return value of Receive tells you how much data you received. Use it. Don't rely on the rest of the buffer being zeros.
When converting a byte array to a string, there is an overload of Encoding.GetString which takes an offset into the array and a length.
Stability. What an interesting concept. -- Chris Maunder
|
|
|
|
|
socket.Receive works with a blocking socket, that means, it blocks the thread until readable data is available. Your loop is correct.
Do you have any calls to Application.DoEvents or Thread.Sleep ? These methods reduce CPU usage, so that other processes can run, even though your program is receivingg bytes.
public void listensend()
{
while(keepalive)
{
byte[] buffer = new byte[1024];
int rcount = sourceSocket.Receive(buffer,buffer.Length,0) ;
Thread.Sleep(100); //hey, you're not the only process on this machine!
...
_________________________________
Vote '1' if you're too lazy for a discussion
|
|
|
|
|
Application.DoEvents???
Hmm... what I'm doing for the server is accept messages from clients. So the buffer in the code will be changed into a string, and then I will parse the string to know what kind of message did the client sent.
Based on the message I will do necessary functions like looking for another client, or getting necessary information, and then the final action would be this server will send string messages.
so in the code I have a series of if statements
if(command == ....)
{
...
...
clientSocket.Send()
}
if(command == ....)
{
...
...
clientSocket.Send()
}
I will try the Thread.Sleep now..
|
|
|
|
|
I have tried the thread.sleep and it does tone down the cpu usage.
I was just wondering whether using sleep can lead to a lesser performance, like when the client is expecting faster continuous replies from the server.
I imagined the thread will sleep on its every run, so it cannot give continuous messages.
Is there any other way around this issue?
|
|
|
|