|
Why are you trying to hyjack someone elses thread??
Post this as a new thread and rewrite the "question" you asked. I say that because you didn't ask a question at all nor did you detail what kind of problem you're having, other than you always screw up code.
|
|
|
|
|
Hi guys, I've just encountered a strange bug (I think?) in ArrayList.Clone()
Here's my code :
public ShipChromosome(ArrayList deckLength, ArrayList shipList, ArrayList allShipList)
{
deckList = deckLength;
shipsInDeck = (ArrayList)shipList.Clone();
allShips = (ArrayList)allShipList.Clone();
}
#region IChromosome Members
public IChromosome Clone()
{
return new ShipChromosome(deckList, shipsInDeck, allShips);
}
Okay, Here's the exception :
System.ArgumentException was unhandled - Destination array was not long enough. Check destIndex and length, and the array's lower bounds.
Some detail about parameters:
deckList = ArrayList containing many int (s)
shipsInDeck = ArrayList containing (deckList.Count ) ArrayList (s) which hold many ShipObject
allShips = ArrayList containing all ShipObject (s) in ShipsInDeck (Hey, I'm lazy!! )
Any idea guys?
Oxfords English < Official CCC Players Dictionary
Excuse me for my improper grammar and typos.
It's because English is my primary language, not my first language.
My first languages are C# and Java.
VB, ASP, JS, PHP and SQL are my second language.
Indonesian came as my third language.
My fourth language? I'm still creating it, I'll let you know when it's done!
|
|
|
|
|
We need more information and context.
What are the counts/lengths of those collections?
Does it go wrong the very first time, or just after a lot of similar operations?
Are some of those collections growing all the time?
What is this app about?
|
|
|
|
|
Luc Pattyn wrote: What are the counts/lengths of those collections?
The first and second ArrayList always have 4 Items (setting)
The third is changing every time.
Luc Pattyn wrote: Does it go wrong the very first time, or just after a lot of similar operations?
After a lot of similar operations.
Luc Pattyn wrote: Are some of those collections growing all the time?
Answered.
Luc Pattyn wrote: What is this app about?
Ship park scheduling(?), There's many decks(4) and many ships (hundred) and it must select the best combination for the ship (Every ship has different length and park cost)
Oxfords English < Official CCC Players Dictionary
Excuse me for my improper grammar and typos.
It's because English is my primary language, not my first language.
My first languages are C# and Java.
VB, ASP, JS, PHP and SQL are my second language.
Indonesian came as my third language.
My fourth language? I'm still creating it, I'll let you know when it's done!
|
|
|
|
|
Firo Atrum Ventus wrote: Ship park scheduling
Amazing, I looked at something like this in the 90s, it required mapping the docks and defining segments, each ship would take up #n segments based on length, each 3rd (or random) segment had a services outlet and we had to get as many service outlets in use as possible.
I'm astonished this has not already been done we could not get funding for the project at the time.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Half answered. How many elements are in the third collection, the one that grows; initially, halfway, and when it fails?
and how often are you doing all this cloning? and what happens to all those clones, are you storing them in yet another collection?
insufficient information, best guess: LOH fragmentation. Never seen that exact error message though.
|
|
|
|
|
Luc Pattyn wrote: How many elements are in the third collection, the one that grows; initially, halfway, and when it fails?
Let me rephrase my previous remark, The length is not growing, it depends on the value of ShipInDecks (I use this ArrayList just to make sure the new ship hasn't been added into ShipInDeck).
Luc Pattyn wrote: and how often are you doing all this cloning?
Cloning happens in crossover process (yes, this is Genetic Algorithm):
1. Clone 2 ShipChromosome (the class with mentioned code). //Where the error occured.
2. Do crossover from clones result.
Luc Pattyn wrote: what happens to all those clones, are you storing them in yet another collection?
Which clones?
The class? public IChromosome Clone() create new object of ShipChromosome which should have the same value, hence the use of clone in the constructor.
The array? I just cloned them from another instance of the class so that I can manage it freely.
Luc Pattyn wrote: LOH fragmentation
Looking into it.
This error doesn't show up much (okay, only once), so I'm just doing this because I'm curious(ie. too many free time).
Oxfords English < Official CCC Players Dictionary
Excuse me for my improper grammar and typos.
It's because English is my primary language, not my first language.
My first languages are C# and Java.
VB, ASP, JS, PHP and SQL are my second language.
Indonesian came as my third language.
My fourth language? I'm still creating it, I'll let you know when it's done!
|
|
|
|
|
As an aside, you should be using List<int>, List<List<ShipObject>> and List<ShipObject> here. Generics are good and make your life better. Though I wouldn't be sure that would solve this issue.
Are you updating that collection from another thread? If the size is different when it allocates the clone to when it actually does the copy, something like that might happen. I'm not sure Clone is a thread safe operation.
|
|
|
|
|
BobJanova wrote: As an aside, you should be using List<int>, List<List<ShipObject>> and List<ShipObject> here. <layer>Generics are good and make your life better.
Sure, but I'm currently in lazy mode now. I don't want to write all that comment for those new developers.
BobJanova wrote: Are you updating that collection from another thread? If the size is different when it allocates the clone to when it actually does the copy, something like that might happen.
Nope, this application is a prototype, everything runs in the main thread.
Oxfords English < Official CCC Players Dictionary
Excuse me for my improper grammar and typos.
It's because English is my primary language, not my first language.
My first languages are C# and Java.
VB, ASP, JS, PHP and SQL are my second language.
Indonesian came as my third language.
My fourth language? I'm still creating it, I'll let you know when it's done!
|
|
|
|
|
The generic type declaration is the comment, it is much clearer that you must put ints in there than if it's declared ArrayList and you can put anything in, but something will crash if you put the wrong type in. Honestly, in .Net 2 and up, you should only use the non-generic collections if you actually don't know what type you want to put in there.
|
|
|
|
|
No, no, no, you don't understand. If I use a generics, I would have to put a mini documentation about generics (No, I'm not joking. I've been asked about the meaning of generics in my code TWICE. )
Oxfords English < Official CCC Players Dictionary
Excuse me for my improper grammar and typos.
It's because English is my primary language, not my first language.
My first languages are C# and Java.
VB, ASP, JS, PHP and SQL are my second language.
Indonesian came as my third language.
My fourth language? I'm still creating it, I'll let you know when it's done!
|
|
|
|
|
Sounds like you need to send those people on an elementary C# course. Generics are a fundamental part of the language and it's silly to not use them (and get all their benefits) because you have ignorami on the team.
|
|
|
|
|
How do you define a default html in silverlight?
In the Microsoft Development Environment, Microsoft Visual Studio, when I build a silverlight project, the code auto-generates an HTML file in the Release directory (and in the Debug directory)
Yet, I have seen some projects that have a Default.html file among the project files. And when I run the program in debug mode, the default.html comes up.
How is this done? Where is the settings which tell Visual Studio which html to use when running or debugging. In another project, when I create a project from scratch, the program runs a generated html in the debug or release directory.
How do I include my own html in a silverlight project?
|
|
|
|
|
Xarzu wrote: Where is the settings which tell Visual Studio which html to use when running or debugging.
In the project properties.
Xarzu wrote: How do I include my own html in a silverlight project?
Right click the project in solution explorer of use the project menu and choose add new item. Add an HTML page.
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I need to communicate with fiscal printer via third party software (Don't ask me way).
I'm sending command file in one folder and receive answer file in another folder.
My print method need to return number of fiscal invoice which is generated by printer and can be found in answer file.
So my method look like this
public int PrintInvoice()
{
while(!_answerFileReceived){}
}
Also I have FileSystemWatcher which monitor answer directory (file creation) with code
fswWatcher_FileCreated(object sender, FileSystemEventArgs e)
{
_answerFileReceived = true;
}
My question is "Is this safe" and can I have exceptions, or do you have any suggestion of another approach to above problem.
Thank you.
|
|
|
|
|
Why not using event instead of infinite loop ?
ie:
fswWatcher_FileCreated(object sender, FileSystemEventArgs e)
{
MyInvoiceClass = newe MyInvoiceClass();
int invoiceID = MyInvoiceClass. PrintInvoice();
}
|
|
|
|
|
First I have to send file so PrintInvoice can not be in FileCreated event.
|
|
|
|
|
Not the first part (before the wait-loop), but the second part of it can.
|
|
|
|
|
I agree with you, but my Print method is inside class and must return Invoice number.
Class name is FiscalPrinter and it has method PrintInvoice. So I call
FiscalPrinter printer = new FiscalPrinter()
int InvoiceNumber = printer.PrintInvoice();
Thats why I'm using infinite loop (it will be extended to wait some amount time so it won't be infinite), and I'm not sure is this approach safe.
Thank you for your answers.
|
|
|
|
|
Well there is a problem with that, while you are looping/waiting the event loop can not process the event raised by the file system watcher. Or is it on a different thread? In that case, you should definitely use a real synchronization primitive instead of busy-waiting.
|
|
|
|
|
Asynchronous events tend to get handled on TrheadPool threads, see here[^]. I didn't test specifically for FileSystemWatcher , however I expect them to behave similarly. So yes busy loops are bad and inter-thread synchronization is recommended.
|
|
|
|
|
Well I like to be sure so I looked it up; the example on msdn:filesystemwatcher[^] shows that FSW events happen on a different threat
|
|
|
|
|
Well, it doesn't show it, what it does is proof or disproof depending on whatever the behavior is when you actually run that code. Will it hang waiting for exit? or will it ever report something?
They don't mention the ThreadPool. they even manage to "explain" without using the word "thread" (except for the silly sentence "Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe." which they have on most every page).
|
|
|
|
|
I assumed it would work, perhaps I'm overestimating MS
|
|
|
|
|
Is it possible to bind data in treeview. If not any other control with the functionality...
|
|
|
|