Re: Contradiction with show() method
Posted by
David Webster on
Mar 30, 2009; 5:40pm
URL: http://imagej.273.s1.nabble.com/Contradiction-with-show-method-tp3693120p3693128.html
To All,
Wilhelm, I reran my tests and got the same results. Howeve, I should have
included my case 2 as a normal result. Only case 1 seems to be odd. For what
it's worth, I am using IJ 1.42k.
Micheal, I am running Windows XP2002 SP3. I am using a Pentim 4 from 2005,
that is only a single core. I don't know if it mutithreds or not.
David
On Mon, Mar 30, 2009 at 1:26 AM, Michael Schmid <
[hidden email]>wrote:
> Hi David,
>
> Java is multi-threaded; displaying images is usually done in a separate
> thread. Especially on multiprocessor machines, this improves performance.
>
> Thus, it can easily happen that "im1.show();" displays the image a few
> thenths of a second after that method is called; at that time the data are
> modified already.
>
> (not a bug, a feature ;-)
>
> Michael
> ________________________________________________________________
>
>
> On 29 Mar 2009, at 22:34, David William Webster wrote:
>
> I am learning Java via th "monkey see, monkey do" method and get what seems
>> to be a contradiction.
>>
>> I ran a test similar to the one shown in Burger and Berge on page 502.(see
>> run method below). Without the updateAndDraw(), the invert()
>> result should not be display'ed. But,
>> In case 1, with the wait(2000) and updateAndDraw() commented out,
>> I get the inverted image being displayed (It shouldn't be).
>> In case 2, I use the wait(200) and get only the original image being
>> displayed.
>> In case 3, I add the updateAndDraw() and get the inverted image.
>> Only case 3 makes any sense
>>
>>
>> public void run(ImageProcessor ip) {
>>
>> ImageProcessor ip1 = ip.duplicate();
>> ImagePlus im1 = new ImagePlus("im1",ip1);
>> im1.show();
>> //IJ.wait(2000);
>> ip1.invert();
>> //im1.updateAndDraw();
>> }
>>
>> David Webster
>>
>