|
There's no such thing as a "concrete" example of this.
All you have to do is ask around.
|
|
|
|
|
Word on the street, huh? Oooooo....k.
|
|
|
|
|
Ask around HERE. You want the professional experience behind it? Ask around HERE. Don't take just my word for it. Ask everyone with an MVP icon next to their name.
|
|
|
|
|
Ask anyone who have ever done anything with threading.
The most common bug I come across where I work is anything accessing the UI from another thread, either creating stuff, or just calling methods and properties across threads.
It is worth noting that the debug environment runs in a rather safe mode (somehow) and so threading issues rarely show up during development, unless they are really bad. Worse, you cannot step through them easily as the timing of actions on different threads makes a big difference.
In my experience 50% of threading issues break the application on the first time they are run in a release environment. Of the other 50% it depends on the hardware and network environment. We had a threading issue that only came to light a year after release when the end user upgraded their machine. Suddenly one of the threads ran faster (probably off on another core, or just from the faster processor) and the bug climbed out of hiding.
World of pain!
|
|
|
|
|
Bug number 1.
You used ShowDialog which should produce a modal dialog, however it is modeless, due to running on a separate thread. Therefore you can spawn hundreds of these secondary dialogs, oops. Not an execution bug in this case, but clearly a process flow bug. Having said that changing your code to Show doesn't produce any visible form at all.
|
|
|
|
|
Hello,
I try to add OpenFileDialog to my code and i can not.
What to do?
**I develop in console NOT in WindowsForm
|
|
|
|
|
Yes, well a console application is not supposed to have GUI, does it?
|
|
|
|
|
A console app starts its execution in a console, it may however turn itself into a regular WinForms app; there is nothing that prevents it from creating and showing Forms. The opposite is not possible: a WinForm app cannot perform input/output operations through the console if it were launched from a "DOS window" or a "Command Prompt" window (it can use a console, but that will not be the same as the launch window).
The problem the OP is probably facing is there is no using System.Windows.Forms; statement included automatically, so he should add that first if he wants to create Forms by code. The context menu "Add Windows Forms" however is available in the solution pane.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
I know. But in this era, if you build a console app, you're planning to be non-interactive right? I mean you'll happily accept stdin, stdout, all the pipes in the world, and even if you want to build a service, you won't put up a dialog will you? I know even Microsoft does this (misuse of MessageBox, shutdown /I interface), but if you're writing console, you're writing console. I only use console if I plan to run on posix, or target server core, or do a quick test where I don't want be bothered by drawing forms). I think it's a base choice: either you'r scriptable, and you go for console, or you're point-n-click.
|
|
|
|
|
I disagree, there may be good reasons to create a hybrid. What I would like to do is write a single app (one EXE) that:
- when no command line arguments are present, behaves like a WinForms app, i.e. it offers a GUI and the user can start setting options and clicking buttons;
- when command line arguments are present, behaves like a Console app, i.e. perform its job, as defined by the command line arguments, and provide output to the console, so it can be embedded inside a batch file, its output could be redirected by the shell, etc.
All this without a console nor a WinForm form popping up for a fraction of a second, to be hidden again when it is not wanted.
Turns out Windows does not let one do that. There is a single bit in the EXE format (PEF) that says this app is a console, if not started from a console, open one; or it isn't, so don't give it access to its caller.
Example:
I like WinZip a lot; long ago it was a DOS utility, no GUI, just command line operation. Fine.
Then it turned into a WinForm app, with a GUI.
And then they fixed it, by adding a "command line extension", a second EXE to fix the lack of scriptability. So MS themselves need two EXE to do basically the same thing twice, with different user interfaces.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
MS is moving more to a 'Unix/Linux like model'. Important system utilities, like diskpart, ipconfig, increasingly have no user interface. Even worse, most of these utilities are implemented twice: in the diskpart example, you have the diskpart.exe, which does some (more) things than the storage management in msc. But both rely on background or system services to do the job. The GUI is there for the casual user, who just wants to get the job done once, the console app is there for the sysadmin who wants something special, or needs scriptable deployment.
There's always a tension between 'ease of use' and 'advanced functionality'. Some functionality cannot be expressed in GUI terms, but may be obvious to the sysadmin with some programming experience.
That's always been my gripe with Unix/Linux systems: pulling up a man page gives me information on how to run the Large Hadron Collider, but I'd be buggered on how to delete a file with a space in the filename in my home directory.
I suppose it's a choice, but I think supplying two utilities for the same job (one graphical for the casual user, one performing for the expert) is a good choice.
Another philosophical discussion
|
|
|
|
|
Michel Godfroid wrote: I suppose it's a choice
At the very least, it is a choice I want to make myself; not have somebody else make for me.
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
Michel Godfroid wrote: gives me information on how to run the Large Hadron Collider, but I'd be buggered on how to delete a file with a space in the filename in my home directory
Apple probably 'have an app for that' too!
DaveIf this helped, please vote & accept answer!
Binging is like googling, it just feels dirtier. (Pete O'Hanlon)
BTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)
|
|
|
|
|
Hi Luc, not for you but for anyone viewing who may wish to know how...
Luc Pattyn wrote: it can use a console
Clickety[^]
DaveIf this helped, please vote & accept answer!
Binging is like googling, it just feels dirtier. (Pete O'Hanlon)
BTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)
|
|
|
|
|
Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
I only read formatted code with indentation, so please use PRE tags for code snippets.
I'm not participating in frackin' Q&A, so if you want my opinion, ask away in a real forum (or on my profile page).
|
|
|
|
|
Yes u can do his with System.Windows.Forms namesspace
go through the below sample code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace test
{
class Program
{
static void Main(string[] args)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.ShowDialog();
}
}
}
Rajesh B --> A Poor Workman Blames His Tools <--
|
|
|
|
|
As others have mentioned, you need to add the line
using System.Windows.Forms; to your code.
I would also clarify you need to add a reference to the System.Windows.Forms assembly in your project (since this is not automatically included in a console project).
Dybs
The shout of progress is not "Eureka!" it's "Strange... that's not what i expected". - peterchen
|
|
|
|
|
I want to add ip address to my lan card by using Management class' method like GetMethodParameters("EnableStatic") ; but i am unable to assign multiple ips to my lan card is there any way to add ip address programmatic,
like we use advanced tab and then ip settings tab to add another ip address,
or is there any way to call net set command using C#
Thanks in Advance
Regards
|
|
|
|
|
WHY do you want to add IP addresses? What is your purpose? Are these IP addresses yours?
|
|
|
|
|
Yes those ip addresses are of our network, basically i want to ping that ip address if no reply from ping is returned then i want to add that ip as secondary ip of my lan card, just like dhcp but i dont want to use dhcp caz i have specific ips
|
|
|
|
|
Still does not make sense. Adding an IP address to your interface brings you nothing, if the rest of the world doesn't know about it. The only situation where this could be valid is if you have a physical subnet which carries 2 or more logical subnets, where only one of them is DHCP enabled. There may also be uses if you're defining a fault tolerant cluster, where you reserve fallback addresses, but in that case you should reserve them first.
In all other situations, you are going to mess up routing tables, impact your own connectivity, and generally be a nuisance to everyone on the network. Doing it programmatically only guarantees that you're ALWAYS a nuisance.
|
|
|
|
|
He's trying to do what DHCP does.
.45 ACP - because shooting twice is just silly ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001
|
|
|
|
|
There's a thing called DHCP. It's part of the operating system. Use it.
.45 ACP - because shooting twice is just silly ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001
|
|
|
|
|
i have used "EnableDHCP" option but it enabled obtain ip automatically option in tcp/ip settings, but i dont need that. i need to add multiple static ips to my lan card, like DHCP do
|
|
|
|
|
i have done this by another method, i pinged my desired ip and then if that ip pinged fail, i created a batch file to process and assigned that ip to my nic. thanks for your responses, if any one among you guys get the solution to do without executing batch file means through coding.
Regards
|
|
|
|
|