|
Simplest thing would be to make xmlData a member of the class instead of a local variable. Then you could refer to it from both methods.
|
|
|
|
|
As I said, it was obvious ^^ thank you for the hint. Just needed a static object (that was the point) where I have to "set" the object at first deserialize and afterwards i can "get" it from there...
public class xmlReadWrite
{
static private object _xmlData;
public object getXmlData()
{
return _xmlData;
}
public void setXmlData(object xmlData)
{
_xmlData= xmlData;
}
}
|
|
|
|
|
You should not use the static keyword here. "private object _xmlData = null;" is correct.
|
|
|
|
|
this doesnt work (I've tried). Because the "static" is needed so the class doesnt loose the object after the first call (as far as i understand )
|
|
|
|
|
It will only lose the object when the containing class is destroyed. From your original post, it seemed like everything is in the same class.
|
|
|
|
|
I'm try to using native dll (with original .h), but it does not work.
Thanks!
|
|
|
|
|
With that non-description of the problem, this is the only reply you're likely to receive.
Without knowing anything about the .DLL you're using, the function you're trying to call, the code your using to import the function with and the code you're using to call it, it's IMPOSSIBLE for anyone to give you any kind of useful information.
|
|
|
|
|
I am getting packages of 256 samples of data per second.
i.e., one large pack; contents: 256 samples.
I want to display that as smoothly as possible, i.e., with as little visible screen jitter, but not lose any data.
As soon as I finish this pack, I will have another one waiting on me.
My arithmetic says that if I schedule one sample every millisecond, I will be exactly ten seconds behind after seven minutes of data.
In this app, no way; I forbid.
If I don't have any time delay between the data points, I get much jitter. Again, no way; I forbid.
My first thought is...
-- Every 42nd event gets 2 dots in a row with no delay
i.e., I put 2 dots on the screen, one after the other, on these iterations
-- 42nd
-- 84th
-- 126th
-- 168th
-- 210th
-- 252nd
That would get me all 256 points on the display once every second. There would be 6 "jerky" points per second; and I don't even know if they will be noticeable in the first place.
Anyone, please correct my arithmetic, but I believe that that gives me a "jumping rate" of slightly better than 40 Hz.
The two big factors are
-1- All data; never miss a dot
-2- Smooth appearance for the human eye
I welcome superior suggestions.
|
|
|
|
|
For me personally, I think anything < 250ms is not perceptibable to most people. I am pretty sensitive to delays, and I think I'd notice a delay as you approach 500ms. Most people wouldn't even notice that.
You aren't going to get real time display on a Windows box.
I don't understand what you mean by jitter? Do you mean flicker on screen as you are drawing the data points? "Jitter" to me is an electronics term as it relates to the signal. If you do in fact mean FLICKER, that can be resolved by erasing / drawing to an offscreen DC and then BitBlt'ing the final image to onscreen.
A better bet would be to dump Winforms and go WPF as that is double buffered for you and the renderings are hardware accelerated by your video card where as Winforms / GDI is not.
Personally though, I think going the offscreen DC / bitblt will solve your flicker.
|
|
|
|
|
SledgeHammer01 wrote: drawing to an offscreen DC and then BitBlt'ing the final image to onscreen. Excellent thinking and reasoning; in fact, highly parallel, if not identical, to my own. I searched a lot last week for phrases like "C#, BitBLT" and asked questions in forums (Maybe here also) about it. Final result: zero knowledge.
The closest that I encountered was this...
Graphics.DrawImage Method
...which I found Here[^]
I welcome your explanation of how to do BitBLT in C#. For whatever reasons, I totally missed the boat on that one.
|
|
|
|
|
See here, there may be a really simple shortcut available to you (auto double buffer)... you'll have to try it out to see if it resolves your issue... Otherwise, the info on how to manual double buffer on Winforms is here as well:
http://msdn.microsoft.com/en-us/library/ms229622.aspx[^]
|
|
|
|
|
I am creating an app to interrogate a web-site. In combing through the examples on MSDN and elsewhere to learn about socket programming, I noticed that almost all the examples have static classes and methods. What is the reason for this?
In my case, I am indifferent. For a variety of reason out of my control, this will be a single threaded query/reply app.
Is there some performance issue involved? It would be easier to not have to declare/manage variable representing the classes. Is that why it is done?
|
|
|
|
|
Most handy for classes that contain only library routines. Otherwis, a regular class is probably more appropriate even if you intend to never have more than one instance.
|
|
|
|
|
Generally you only use static classes for stateless methods. There are also singletons, and it is generally considered good practice to access singletons through and static instance property which will instantiate the singlton class if it has not already in instantiated when the instance property is first called.
|
|
|
|
|
mjackson11 wrote: Is there some performance issue involved?
Yes. Removes the need to lookup the object-instance.
|
|
|
|
|
Sure, but that's no reason to use a static class when a regular class is more apropriate.
|
|
|
|
|
And vice versa; a static class would be appropriate. What's the use of a singleton-pattern if all it does is replace a static class, without adding any additional value?
|
|
|
|
|
I don't recommend the Singleton-pattern either.
<anecdote>
One of the things I had to work around in the last year is that the System.Console class is static -- I needed a non-static class I could pass around so I had to wrap System.Console in another class, it was dreadful. The problem is worse because .net doesn't have Interfaces for TextReader and TextWriter. I had to create those as well.
Making a class static or Singleton simply because you don't expect to ever need more than one is not a good idea; don't limit your options unnecessarily.
|
|
|
|
|
Why pass a static class around in the first place? There's no need to pass a reference if there's only one class.
PIEBALDconsult wrote: Making a class static or Singleton simply because you don't expect to ever need more than one is not a good idea; don't limit your options unnecessarily.
I'd expect an app to have a single stdout. Did you have multiple?
|
|
|
|
|
Eddy Vluggen wrote: if there's only one class
But there might not be!
Eddy Vluggen wrote: a single stdout
That's not the point. I want to pass a reference to something that implements ITextWriter, for example, I don't care that it just happens to be System.Console in this particular case. But .net doesn't allow me to do that easily for multiple reasons.
|
|
|
|
|
Hello
i have some theory knowledge in C#, but no practical experience.
i want to improve my Skills, and start working on some project.
I've been looking for internship or trainee ship
but no luck.
so after reading and digging, i found out that one of the best ways to improve Programming knowledge is by joining an open source project.
I've been looking for a project for the last 2 days, but it's really frustrating.
all the projects seems to be SO advanced and so Complicated for my knowledge
i really need advice on that!
thank you so much in advance.
|
|
|
|
|
You need to start off small and work up to a large project. Open source projects are typically large scale broken down into manageable chunks, but for a beginner they're probably too advanced.
I started by making a weights and measures converter.
I then added on a recipe section so it was useful in the kitchen.
I then added an alarm system so I could use it as a kitchen timer.
I then made it more 'intelligent' by auto calculating start times of various parts of a meal and meat cooking times - so a Chicken dinner for example, I can just enter the weight of the chicken and it will tell me exacly how long it will take, alert me to put the roast potatoes in the oven, and when to put the carrots on... etc, etc
You see how a simple small conversion project grew in stages and helped me learn about most aspects of everyday programming over time.
Find something that you will find useful and break it down into little tasks. Slowly build each part, learning as you go. Because it's for you, and you will use it you will find it easier to stay on task and learn properly - IMO of course!
|
|
|
|
|
Please, don't post the same thing in multiple locations.
|
|
|
|
|
You don't need to join an open source project to improve your skills, you just need to practice, practice, and practice some more.
You can pick an open source project that interests you, download the code and then work on finding and fixing bugs, or writing enhancements to the project without being part of it. When you succeed at doing something productive with the project you can submit the updates you have made to members of the project and perhaps become an active member of the project going forward. The key is that in order to learn, you have to get into code and break things, understand why you broke it, and learn how to fix it properly. No one learns without breaking something. Cheers and good luck to you.
I wasn't, now I am, then I won't be anymore.
|
|
|
|
|
Hey all, is there a way to detect if ANY control is clicked inside a form? The MouseUp, -Down and so on events can only be set for the form itself, but as far as I have tested i out not for any controls that reside inside it - true? Is there another way? Cheers, Dennis
|
|
|
|