|
Just a couple of comments:
1) Your lock and if statement are backwards. 2 threads could get past the if statement. One would pass the lock and do the init, the other would hang at the lock. When the first exited the lock, the second would then be released and pass the lock and do the init again.
2) I wouldn't lock on the instance. Mainly because it's public (advised against). If you must use a lock, create a private lock object instead.
3) I wouldn't put the shut down code in a finaliser. Finalisers aren't guaranteed to be run, and if a finaliser blocks or throws an exception it can screw up your garbage collector thread - You definitely shouldn't be throwing exceptions from a finaliser, it will kill the garbage collector, and the exception will never get reported. I'd do it with a dispose pattern (and put the code inside the if block so it's only called when disposing and not when finalising) and make sure you call dispose manually from your applications shutdown routines.
4) It's a singleton. That means the constructor only gets called once. You've used a thread safe singleton patten, so unless I've missed something I think you don't need the initialised flag or the lock at all. Just ditch the lock and flag entirely and trust the singleton pattern to only create the object and call the constructor once.
Simon
|
|
|
|
|
How can we find the next highest value in the binary tree?
We have a binary tree and an number is being input. We need to find the next highest number.
|
|
|
|
|
This sounds a lot like a homework question. Sorry if it's not, but I hope you understand I'm not going to just give the answer out. It's fairly simply though, you should be able to figure it out. Wikipedia[^] has loads of info on binary trees. You could start by reading up there.
If not, try drawing up a sample binary tree. Pick a number, and see how you would find the next number by traversing the tree.
Simon
|
|
|
|
|
Hi all.
There is any way to restart a console application from itself code?
Thanks.
|
|
|
|
|
You can use Process.Start() to start a new process, and you can use Environment.CommandLine to get the command line the program was started with.
Simon
|
|
|
|
|
hi..
I created a windows application, I have 1 Picturebox & 1 button, when I click the button Picturebox should rotate (means flip), and the user should get 2D effect of the Picturebox (like in power point presentation the animation that we use to switch between the slides).
Any solution’s or links related to my question are kindly acceptable...
Please help me to do this
|
|
|
|
|
System.Drawing.Drawing2d.Matrix.Rotate()
Is this what you are looking for?
Loading signature. Please wait...
|
|
|
|
|
Thanks you d@nish for you reply
I have to rotate the picturebox, and the user should feel that it is rotating while rotating I have the change the image of the picturebox.
|
|
|
|
|
|
pictureBox.Image.RotateFlip([option]) or in the old fashion way with GetPixel() SetPixel(), reordering the pixel array ... anyway i'm sure google would've give you the right answer in a few seconds ... but owh well
Code? Yeah i love it fried together with a glass of wine.
|
|
|
|
|
Dear All,
Iam new to c# window application and also for COM.I have a COM component
which is developed in Visual Basic.Now i want to use this component into
my c# window application.How can i register and use.The COM is in the form
of EXE not in the form of DLL.Please help me out on this.
Thanks & Regards
Veeresh
i want to join this group
|
|
|
|
|
hi
you can register com objects with regsvr32.exe. pass the full filename as parameter.
after registering, add a reference to your project selecting the com object registered before.
visual studio create a wrapper for the com object and add this wrapper as refernece to the project.
regards
|
|
|
|
|
Dear All,
Sorry i dont where to post these kind of questions.its related to COM and also .net so
i posted in all the forums.
Dear Jeo,
Thanks for your help.When iam registring the COM component using the method which specified.
Iam getting the following errors.
c:\xyz\xyz\COMcomponent.exe was loaded,but the DLLRegisterServer entry point was not found.
c:\xyz\xyz\COMcomponent.exe does not apperas to be a .DLL or .OCX file
Please help me on this.
Thanks and Regards
Veeresh
i want to join this group
|
|
|
|
|
in this case your exe ist not a com object. all com object must contain
DLLRegisterServer and DLLUnregisterServer methods. this methods register/unregister
the com object.
|
|
|
|
|
Hi Jeo,
Thanks a lot for help.I will get COM component and i will register.
Thanks and Regards
Veeresh
i want to join this group
|
|
|
|
|
|
DO NOT CROSSPOST the same question in multiple forums. You spammed about half the forums on the site...
|
|
|
|
|
Dear all,
I would like to know does anyone know how to do it?My idea is create a chart OCX by using GDI+ (c#.net) and use in VB6.
Any help or resources are welcome.
Thanks in advance
cocoonwls
|
|
|
|
|
|
Check out the InterOp toolkit, part of the VB.NET powerpacks. You can easily port this to C#, various examples can be found both here and on Google.
Good luck
|
|
|
|
|
Hi all
I have a project in which I have to communicate with a serial port on a piece of hardware. The hardware connects to a router via a standard Ethernet cable and is assigned an IP address and the serial port has a port number of 49510.
What I am hoping to do is send a string such as "ZOOM;1;0;FF,30,30,00,A2,32,EF;;;" from a remote computer on the network, to the serial port and then to listen for a response. I think this needs to be in TCP/IP format however I'm just new to C# socket programming and not sure how to achieve the end result.
Any help would be greatly appreciated.
|
|
|
|
|
i want to customize the shape of the form , how can i change the shape of the form?
|
|
|
|
|
|
I am using following code to verify whter enterd char is an alphabet.
theAddress.Substring(i,1).ToLower < "a"
The code runs perfectly in vb.net if I use Lcase but fails in c#.net.
The error is:
Error 1 Operator '<' cannot be applied to operands of type 'method group' and 'string'
How else can I do that.The code is in a for loop.
Plz help.I'd be obliged.
|
|
|
|
|
Well the error you are getting is because you missed the () from after the ToLower . It's a method call so you need the brackets. C# isn't like VB, you can't miss out the brackets if you don't pass any parameters.
But your next problem is you can't use '<' to compare two strings. '<' only works on Char data types, not Strings. You could call .ToCharArray() on your string to get it as a character array and pick out the character from the array you want to look at, and then if you use single quotes (') rather than double quotes (") for the 'a' then that will be treated as a character too. But that would be a rather painful way of doing it.
There are built in functions to do this kind of thing. Just do this:
Char.IsLetter(yourString, i);
Simon
|
|
|
|