|
|
There are probably two factors at work here...
1. If this is the first .NET application that has been run since the computer was last rebooted (or the first one run in a while), the .NET runtime itself (the CLR) needs to be loaded in to memory. This happens when your application first starts and does increase the startup time.
2. The fact that you can recompile on the client machine, which resolves the problem is probably due to my point above combined with the fact that the runtime no longer has to "fix up" as many assembly pointers in memory.
If the startup time really that large of a problem you should probably do some performance analysis and see where the application is spending most of its time during startup, and then fix those areas. .NET is already a dynamically (just-in-time) compiled language, so doing more dynamic compilation isn't going to help performance.
Scott Dorman Microsoft® MVP - Visual C# | MCPD
President - Tampa Bay IASA
Hey, hey, hey. Don't be mean. We don't have to be mean because, remember, no matter where you go, there you are. - Buckaroo Banzai
[ Forum Guidelines][ Articles][ Blog]
|
|
|
|
|
Can someone please tell me how to check to see if a number has been entered by a user in form field?
|
|
|
|
|
Surely you can try look for the answer yourself...
|
|
|
|
|
Hello leppie,
I have attempted to look, but was not able to find an answer (hince the reason I have posted to the board). I thank you for your "non-willingness" to help though. Have a nice day.
|
|
|
|
|
when do you want to validate that?
if you want to validate on textchange you can write code for that . or for any button click you can use Regx.
Thanks
|
|
|
|
|
Thank you. I will give it a shot.
|
|
|
|
|
That work. Once again thank you.
|
|
|
|
|
you are welcome
|
|
|
|
|
int number;
bool isNumber = int.TryParse(text, out number);
modified 12-Sep-18 21:01pm.
|
|
|
|
|
Hi Greeeg,
Great Idea !!!!
|
|
|
|
|
using System;
using System.Drawing;
using System.Windows.Forms;
namespace WindowsApplication11 {
public class FormA : Form {
public virtual new Size PreferredSize {
get {
return new Size(300, 300);
}
}
}
static class Program {
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form form = new FormA();
form.Size = form.PreferredSize;
Application.Run(form);
}
}
}
Chris
|
|
|
|
|
chris175 wrote: public virtual new Size PreferredSize { get { return new Size(300, 300); } }
What is "Size" ?
|
|
|
|
|
|
Its Working Fine
using System;
using System.Drawing;
using System.Windows.Forms;
namespace WindowsApplication11
{
public class FormA : Form
{
public virtual new Size PreferredSize
{
get
{
return new Size(300, 300);
}
}
}
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form form = new FormA();
Application.Run(form);
form.Size = form.PreferredSize;
}
}
}
|
|
|
|
|
I encountered something similar, and got the right size AFTER the call to Application.Run (). If you get the size in FormA's Load method, it might be right at that point.
|
|
|
|
|
Because when you Application.Run(form) , InitializeComponent() gets called which probably resets the size of the form.
Scott P
“It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.”
-Edsger Dijkstra
|
|
|
|
|
The wrong size is placed on the form BEFORE Application.Run(form) is called. I dont think it has anything to do with InitializeComponent() function since there isn't one within the class FormA .
Chris
|
|
|
|
|
carbon_golem wrote: Because when you Application.Run(form), InitializeComponent()
No, you have it all wrong, there is no magic involved. InitializeComponent() is usually called from the Form's constructor.
|
|
|
|
|
If you do FormA form = new FormA() then your method will be called, otherwise the System.Windows.Forms.Control.PreferredSize property will be called (can be seen in .NET reflector). I guess this has to do with the fact that PrefferedSize in Control is not marked virtual or abstract .
regards
modified 12-Sep-18 21:01pm.
|
|
|
|
|
PreferredSize isn't virtual; you cannot override it.
Instead your code created a new virtual property with the same name - but your Main method refers to the original PreferredSize property.
You should override the virtual GetPreferredSize method instead.
|
|
|
|
|
That is what I was looking for... Thanks
|
|
|
|
|
Hi everybody.
I have a class that uses a socket to comunicate with remote server. In that class I have two threads - one for sending data and one for receiving. I am not shure if I have to lock the socket instance becouse I use it in both threads. The problem is if I lock it when receiving the object is locked all the time becouse socket.receive blocks until it receives some data. My simplified receiving methods is
void read()
{
byte[] buffer = new byte[ReadBufferSize];
int readCount;
while (true)
{
readCount = 0;
try
{
//lock(_socket)
//{
readCount = _socket.Receive(buffer); // this call blocks
//}
}
catch (Exception ex)
{
}
if (readCount > 0)
{
//Notify the main thread that data was received
}
}
}
Does anybody has any solution? Maybe I should use some other method(not socket.receive)? Is locking the socket instance even necessary? Any advice will be apreciated.
Uros
|
|
|
|
|
From my experience, you should not have to lock the socket.
|
|
|
|
|
Thanks. Are you shure about that? I mean do you know that, or you didn't use locking and had no problems becouse of it?
Uros
|
|
|
|