I programmed my brand new Arduino Duemilanove on my mac then took it and plugged it into my windows machine. The Tx light was still flashing every second as it was supposed to. I opened up C# application and when I call the SerialPort.Open() method inside the application the Tx light stops flashing. Why is it doing this? I have also tried the example code on the arduino playground with no success.
Port open flips the reset pin on the Arduino, and resets it. The device should re-start transmitting again a couple seconds later. See section 7 of this post: http://itp.nyu.edu/physcomp/Labs/SerialDuplex for an example of software handshaking that takes this into account (in Processing, but readable, and should be readily translatable).
Well... sometimes opening the port flips the reset.
If you don't want to have to wait on the Arduino to reboot, the other option is to just disable the auto-reset feature. On the Duemilanove there is a very small solder bridge labeled "RESET-EN" that can be broken to disable this feature. If you disable this feature you will have to press the reset button every time you want to upload a sketch.
When the Arduino is booting it goes into a mode where it accepts new sketches for a brief time. To allow sketches to be automatically uploaded, the DTR pin of the serial port is wired to the reset pin of the Arduino. Problems arise because different serial ports will have DTR set differently(high,low,floating) as the port is opened. Depending on the Arduino bootloader you have it will take between 0.5 - 7 seconds for the arduino to reboot.
It does not appear to restart even up to 30 seconds. What I have found is a combination of opening the port and pressing the reset button that keeps the communication running, well not 'keeps' but you get the idea.