|
Hi,
if your app is slow, try and figure out why and fix it. Are your images way too large and getting downscaled all the time? are you using some fancy transparancy stuff?
And did you look into double-buffering? you might try and set DoubleBuffered true. That does not really solve performance problems, it does hide some of its visual effects though.
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
|
|
|
|
|
hi everybody.
I have an C# desktop application, it support multiple instances.
but in my case, my application get 10-15 sec to load and if in between second instance get started, it will crash.
So i wish multiple instance application but even if there will be successive two double click to start application, second ,third instance should wait a while..
I have tried mutex but i have no detail idea of mutex.
Pls give me a way to do it
Thanks in advance.
|
|
|
|
|
Just a quick point - it'd be better to avoid crashes when multiple instances start by addressing that rather than delaying start up. Why does it crash?
You may be able to get a more granular critical section that way. Failing that then a Mutex probably is the way to go.
Regards,
Rob Philpott.
|
|
|
|
|
Hi Rob ,
Thanks for reply/
I am not able to find a reason for crash but it may be reading/writing file at a same time.
Any idea about mutex.WaitOne(...)
Thanks
|
|
|
|
|
Anybody know where I can find a decent Class Generator that will generate classes for me based on Access 2007/2003 tables? Preferrably Access 2007.
|
|
|
|
|
Such auto-generated classes would likely be useless. There is no substitute for doing it yourself.
|
|
|
|
|
Well I've actually downloaded a class generator that works with Access 2003 and it works perfectly, generated all the classes for me together with methods for adding, updating etc.
|
|
|
|
|
Can you state where you downloaded the class generator or even just it's name? I too am looking for this kind of product.
|
|
|
|
|
|
|
Hi all,
I have a form with datagridview , some datetime pickers and some textboxes. I have modified the code found on this webpage to draw the rows and columns of the datagrid
http://social.msdn.microsoft.com/forums/en-US/winformsdatacontrols/thread/dc9d3acf-ccf8-457f-ba31-ef09fb357aee/ on the print page . The datagrid is getting drawn on the top of the page. I want to display the textbox contents and datetimepicker contents before the datagrid. Can any1 let me know how to draw the datagrid at the middle of the page with reference to the code in the link.. Thanks,
|
|
|
|
|
There are several code snippets on that link and you do not say which you are trying to use.
However, the grid will be being drawn at coordinates specified somewhere in the code, most probably using DrawRectangle() although that is not certain.
DrawRectangle() most commonly uses a Point structure or a Rectangle structure. So you need to look for a Point parameter that is set to Point(0, 0) , if the grid is at top left, or Point(?, 0) , if it is just somewhere along the top. The same would apply to the first parameter of a Rectangle() if that is what is used.
Find the one that you think draws the grid and experiment with the numbers e.g. try Point(20, 20), run it and if the grid is in a different place then you have found the correct parameter, if not, put it back to what it was before and try another one till you succeed.
Good Luck!
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
I have following code in my start button which starts the process.
void BtnStartClick(object sender, EventArgs e)
{
btnStart.Enabled=pdfStopped=xmlStopped=false;
btnStop.Enabled=true;
ThreadPool.QueueUserWorkItem(new WaitCallback(Startup));
}
void Startup(object s)
{
try
{
Start();
timGeneral.Enabled=true;
timGeneral.Start();
}
catch(Exception){}
}
void Start()
{
pdfThread=new Thread(new ThreadStart(pdfDownloadStart));
pdfThread.IsBackground=true;
pdfThread.Start();
xmlThread=new Thread(new ThreadStart(startXMLDownload));
xmlThread.IsBackground=true;
xmlThread.Start();
pdfStThread = new Thread(new ThreadStart(createPdfFileStructure));
pdfStThread.IsBackground = true;
pdfStThread.Start();
}
well i am trying to stop all these running threads in stop button, but i could not achieve it
how can i stop all threads?
Abdul Rahaman Hamidy
Database Developer
Kabul, Afghanistan
|
|
|
|
|
try to avoid using Abort to stop the thread. Use flag to abort the thread.
I got a lot of problem using Abort.
while(isThreadRunning)
{
...
}
to stop it, set isThreadRunning = false;
|
|
|
|
|
Note: you must declare isThreadRunning as volatile, or it will be optimised out...
No trees were harmed in the sending of this message; however, a significant number of electrons were slightly inconvenienced.
This message is made of fully recyclable Zeros and Ones
|
|
|
|
|
well, my friend, if u see i have used
ThreadPool.QueueUserItem(...);
How should i get rid of this to stop all threads.
Abdul Rahaman Hamidy
Database Developer
Kabul, Afghanistan
|
|
|
|
|
You must implement the code, that I sent, in these methods:
pdfDownloadStart
startXMLDownload
Then set isThreadRunning=false to end the thread.
|
|
|
|
|
well, i think u guys did not understand me correctly, bellow is the complete code only for "pdfDownloadStart"
void StartStructureTimer(int time)
{
timStructure=new System.Threading.Timer(new TimerCallback(TimerStructureJob));
timStructure.Change(time,0);
}
void TimerStructureJob(object state)
{
System.Threading.Timer tm=state as System.Threading.Timer;
tm.Dispose();
pdfDownloadStart();
}
void pdfDownloadStart()
{
try
{
signalMessage(string.Format("Searching Server {0} for newly added Files",fdo.FtpServer));
dtList=p.getPdfNotDownloaded();
if (dtList.Rows.Count>0)
{
signalMessage(string.Format("{0} Files Found for Download",dtList.Rows.Count));
fdo.FilesToDownloadList=dtList;
fdo.LocalDownloadDirectory=TempDirectory;
Thread tPdf=new Thread(new ThreadStart(downloadFile));
tPdf.Start();
tPdf.Join();
if (!fdo.DownloadStatus)
{
if (timDownload!=null)
timDownload.Dispose();
signalMessage("Download Failed\r\nretrying in 60 second");
StartTimer(36000);
}
else if (fdo.DownloadStatus)
{
if (timDownload!=null)
timDownload.Dispose();
signalMessage("All Files Downloaded Successfully\r\nretrying in 60 second");
StartTimer(36000);
return;
}
else
StartTimer(36000);
}
else
{
signalMessage("No Files Found\r\nretrying in 60 second");
StartTimer(36000);
}
}
catch(Exception ex)
{
if (!pdfStopped)
{
signalMessage("Failed downloading Files from Remote Server "+ex.Message+"\r\nretrying in 60 second");
StartTimer(36000);
}
else
signalMessage("Failed downloading Files from Remote Server "+ex.Message);
}
}
all methods which runs on those thread has the same functionality. if u see after "60 second" process runs agains.
if i abort or stop the thread still the job runs after 60 seconds.
if u see closly another thread is running to download the files, well i want to stop all these threads, if i use bool value like that still the scheduled process runs.
how can i stop all these threads from calling thread to end?
Abdul Rahaman Hamidy
Database Developer
Kabul, Afghanistan
|
|
|
|
|
Hmm.. I think you should redesign it. You start a threadpool, in threadpool you start a thread, in that thread you start a thread again.. wow..
|
|
|
|
|
Try here: How to create and terminate threads[^]
No trees were harmed in the sending of this message; however, a significant number of electrons were slightly inconvenienced.
This message is made of fully recyclable Zeros and Ones
|
|
|
|
|
Since you've set the IsBackground property to true, those threads get aborted when the program closes. Alternatively, you could all pdfThread.Stop, etc.
Between the idea
And the reality
Between the motion
And the act
Falls the Shadow
|
|
|
|
|
Hi all,
I am busy developing a custom TCP/IP server. The server has a few events namely, NewTcpData, NewTcpClient and TcpClientDisconnected. At the moment I just want to know of these events.
So I have created the events and all is working fine, but as soon as I call the event from my GUI app, I receive a message stating: Cross-thread operation not valid ...
So normally I would hook the GUI control to the SynchronizationContext .
For example:
context.Send(new SendOrPostCallback((s) => this.textBox1.Text = "Some Data"), null);
So, my question: how can I develop / alter the event(s) (which runs on a separate thread that the main) to not make use of the above technique, and still be able to send / set data to the GUI controls?
Many thanks in advance.
Kind regards,
The only programmers that are better C# programmers, are those who look like this -> |
Programm3r
My Blog: ^_^
|
|
|
|
|
Programm3r wrote: So, my question: how can I develop / alter the event(s) (which runs on a separate thread that the main) to not make use of the above technique, and still be able to send / set data to the GUI controls?
If you have to set values to controls that are created by a separate thread, you need techniques like SynchronozationContext , Invoke/BeginInvoke.
BTW, why do you want to do this?
|
|
|
|
|
Thanks for the response Navaneeth.
N a v a n e e t h wrote: BTW, why do you want to do this?
Because, I want to be able to give the user visual confirmation of the following:
New TCP/IP clients that has connectedNew TCP/IP data that has arrivedInform the user when a client has disconnectedUnless you have other suggestions on how this could be achieved?
Thanks again.
Kind regards,
The only programmers that are better C# programmers, are those who look like this -> |
Programm3r
My Blog: ^_^
|
|
|
|
|
hi,
need your help to solve this issue..
i have a custom pictureedit control in which i have many custom properties and events. i need to place an image OVER this in another ordinary picture edit and should be able to work on the events in the picture edit in the lower layer.
i'll make it clearer...
in my custom pictureedit i have added a feature to measure the distance between 2 points. now what i need to do is place another image over the main image and while comparing these images should be able to take the measurements from the lower image...
hope you guys understood my issue clearly...
tons of thanks in advance for any help
|
|
|
|