That's why there are several different types of timers in .NET.
If you can't use a System.Windows.Forms.Timer (because you don't have a GUI) then a System.Timers.Timer should work fine. The events differ a little, but the concept stays the same: Calculate how long until the desired shutdown time and wind up the timer...
1. Upgrades to Windows Installer 2.0
2. installs a C# setup project MSI
Do u think i would be needing to upgrade through the redistributable package of SP2 or is there another way?
I have previously used a similar setup project(available on the microsoft website) that installs a .NET Framework Application and Dotnetfx.exe (the redistributable package of dotnet framework + upgrades to Windows Installer 2.0). This time i dont need the dotnetframework, only need to upgrade the Windows installer to 2.0, so that my MSI runs (it requires Windows Istaller 2.0)
If it's a C# project, the user must have the .NET Framework. All versions of the framework, IIRC, use Windows Installer 2.0. If the user already has the framework, they should already have Windows Installer 2.0.
If you're using VS.NET to create the MSI, in Project Properties you can set the Bootstrapper to 'Windows Installer Bootstrapper'. This copies InstMsiA.exe and InstMsiW.exe (the Windows Installer redistributables) and a Setup.exe to the output folder, and generates a Setup.ini which tells Setup.exe to launch your MSI. If you want to ship that as a single EXE, you should look into something like IExpress[^].
Is there a simple method to place two single quotes anywhere there is a single quote so that single quotes can be inserted into a database? Currently I have been searching through each string (textbox, or what ever it may be) and manually (looking at each character in the string) replacing the single quote with two single quotes. I have also tried the Replace function but that does not appear to change the single quotes. If any one has experinced this please pass on your knowledge or point me in the right direction.
sreejith ss nair wrote: why did the designers of .NET decide it was necessary to implement 2 interfaces in order to support enumeration?
Because you might want to have two separate threads enumerate over the same collection at the same time. Because the iteration model used in .NET does not permit alterations to a collection during enumeration this is completely safe.
The IEnumerator interface allows you to get the current state of a particular enumeration. While the IEnumerable interface allows you to retrieve a (normally new) IEnumerator object.
So, if you have two threads they can both get separate objects with an IEnumerator interface to the same collection - and both threads can iterate over the collection at their own speed without coliding with one another.
Also, it allows you to provide sevaral different ways to enumerate over one collection. A collection, through the IEnumerable interface, can expose a default enumeration, while it can also expose more object with the IEnumerator interface for other non-default enumerations. For instance, the default enumerator could just iterate through the collection in the order in which the data appears. While a second IEnumerator could expose the contents of the collection in a particular sort order, or with some filter.
Does this help?
"If a man empties his purse into his head, no man can take it away from him, for an investment in knowledge pays the best interest." -- Joseph E. O'Donnell
Thanks for this information. Yesterday i wrote an article discussing IEnumerable, IEnumerator. And i got a suggection which ask "why microsoft desided like that ?". I can't able to help him out. Now i can and i will do it.