|
Have you tried this:
private void Transmit(DEFINITION def)
{
...
}
...
Transmit(Definition.EVENT_FLAPS_UP);
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Thank You, but I'm searching for something a little bit different. I'd like to have an enum parameter as string, for example: Transmit("EVENT_FLAPS_UP");
Why? There will be a textBox in my app, where user can write this parameter.
|
|
|
|
|
Why? He'll only make mistakes, which you need to check for.
Instead of a textbox, use a Combobox and he can only give you valid values:
On startup:
cbDefinitions.DataSource = Enum.GetValues(typeof(DEFINITION));
And when you want a value:
DEFINITION userSelected = (DEFINITION)cbDefinitions.SelectedItem;
Transmit(userSelected);
No strings, no switch to find out which he used and convert it to your enum, no errors.
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
As Griff said, the user is going to make mistakes. But if you really need to stick with a textbox, then you'll need to use the Enum.TryParse[^] method:
DEFINITION definition;
if (Enum.TryParse(YourTextBox.Text, true, out definition))
{
Transmit(definition);
}
else
{
... Show an error message to the user ...
}
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Hello,
I need kill a function by press button,
I have a function (method) ex:
public void move()
{
int count = 0;
while(true)
{
count++;
}
}
I need kill this method by when press button.
Any Idea?
thanks
|
|
|
|
|
Assuming you're running that on the UI thread, you won't be able to press the button to stop it. The entire UI will be frozen.
If it's running on a background thread, then you should be able to use a CancellationTokenSource[^] to coordinate cancelling the loop.
However, you've simplified your code to the point where it's not actually doing anything. Perhaps if you explain what you're actually trying to do, we might be able to provide better help.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Thank you for the replay,
No, is not a Thread while loop, is a normal method with while loop.
So, I'll try to explain my idea.
I will try to explain my function, it is not exactly what I posted, I just collided so to simplify the explanation.
I have this button that run a method:
private void btn_move_Click(object sender, EventArgs e)
{
while (true)
{
SnapFunction();
}
}
This "SnapFunction" have (wait for something) so, this function stay stop until the condition is true,
and wend condition is true, the code make another cycle until waint again for the condition is true.
Basically the condition is waits until something in the form is selected by the mouse, but this
code stay paused on the line.
What I need is, stop this function by some way.
|
|
|
|
|
|
You can't, not at all.
When you loop in any UI control event handler, the thread that handles them all is busy running the loop until the event handler method exits - which it never does because it is sitting in your loop!
Loops in event handlers are - with exceptions - a bad idea, and loops in UI handlers are a very bad idea because they prevent any other event being recognized and processed because the only thread which is allowed to access UI controls (called the "UI thread") is permanently busy processing a single event.
If you want to use any form of user input to terminate a loop, the loop must be running on a different thread - which means you manually starting another thread and setting the loop running. That's not difficult to do (the BackgroundWorker Class (System.ComponentModel) | Microsoft Docs[^] makes it pretty painless and provides a simple way for your new thread to report progress / results to the user) but it is an operation that you have to start yourself, the system will not do it for you!
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
You can't kill "a method" from outside. You can kill the thread it is being executed on, but ... you can't tell that the thread is executing the function!
What you need is a semaphore that is checked in the method instead of the while(true) , and signaled elsewhere in your app to indicate the method should exit when ready.
See here: How to: Create and Terminate Threads (C# Programming Guide) | Microsoft Docs[^]
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Hello,
I am new on C#, and I have a problem.
O make a form1 with listview,and i polulate this listview whit some Items.
Then I make another form2 with a button, just for count the items on Listview.
I create one function on Form1:
public void UpdatePart()
{
MessageBox.Show(listView1.Items.Count.ToString());
}
In form2 I create a Button:
private void button1_Click(object sender, EventArgs e)
{
Form1 a = new Form1();
a.UpdatePart();
}
So, this count return always 0, but the listview on form1 is not empty, If I call
the same function but on the same form1, the code work and return the items numbers on listview.
What is rong ?
Thanks
|
|
|
|
|
|
Thank you, I will check
|
|
|
|
|
In addition to following Richard Deeming's excellent advice, see this recent answer to a similar problem: [^]
«Where is the Life we have lost in living? Where is the wisdom we have lost in knowledge? Where is the knowledge we have lost in information?» T. S. Elliot
|
|
|
|
|
I HAVE BEEN CREATED THE INTERNET DOWNLOAD MANAGER.
I AM USING METHOD FOR FILEDOWNLOADASYN
HOW TO CREATE PAUSE,RESTART PROGRAM SIR?
|
|
|
|
|
DON'T SHOUT. Using all capitals is considered shouting on the internet, and rude (using all lower case is considered childish). Use proper capitalization if you want to be taken seriously.
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Are you using WebClient.DownloadFileAsync? If so, you can't pause and then restart from that point. You would have to cancel the existing download and then start again with a new one.
This space for rent
|
|
|
|
|
Easy , turn your caps lock off - simples
We can’t stop here, this is bat country - Hunter S Thompson RIP
|
|
|
|
|
Message Closed
modified 8-Jan-19 9:42am.
|
|
|
|
|
|
A textbox is not meant to display "binary" code, and HEX-codes as your other post suggests are not a form of binary. There's quite some examples on how to convert a byte to hex in C#, but if you want the data in a nice transmittable form, you'd be better of converting it to Base64.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Define "result:" exactly what type of information do you want to display in the TextBox ?
Don't use ArrayList: it's an older data structure that uses a lot of memory: use an array.
Study these links and code:
public static byte[] ImageToByteAry(Image image, ImageFormat format)
{
var stream = new System.IO.MemoryStream();
image.Save(stream, format);
stream.Position = 0;
return stream.ToArray();
}
«Where is the Life we have lost in living? Where is the wisdom we have lost in knowledge? Where is the knowledge we have lost in information?» T. S. Elliot
|
|
|
|
|
I have this home project... at home.
It has lots of project.
I am also using Nuget to get some 3rd party library.
One of this Nuget package in particular contains 6 DLLs.
It is used in 4 projects... (a bit messy to update)
Now one of this DLLs has a nasty bug. Fortunately the source is on Github!
Is there an easy way for me to debug this single DLL with my project? Without having to mess up with my Nuget packages?
|
|
|
|
|
If you can download the source from Github you can reference the project directly - it may all fall apart if the other 5 DLLs are referencing (never had to attempt that) it internaly.
Never underestimate the power of human stupidity -
RAH
I'm old. I know stuff - JSOP
|
|
|
|
|
Oh.. it turns out I can remove the DLL reference without removing the Nuget package!
After that I can reference the project and Bob is your uncle!
Well.. just gonna continue testing my app until I meet this error again, sweet, thanks!
|
|
|
|