Re: updating an ImageIcon's backing BufferedImage content from multiple
threads
Lew wrote:
Knute Johnson wrote:
Lew:
Think of all the cases where you draw something to a BufferedImage in
one thread and then call repaint(). I've never seen a problem with
that. There may very well be some synchronization in the queue
between the call to repaint() and the calls to paintComponent() et al
however.
I thought the drawing of the BufferedImage always happened on the EDT.
I don't know of such cases as you describe.
For example, draw on a BufferedImage in a worker thread, and then
display that BufferedImage by calling repaint(). That would change
pixels in one thread and display in the EDT.
On the other hand, I've never seen a case where a change was not
visible from one thread to another. I know that there is no guarantee
that it
Again I ask, on a multi-processor machine?
Yes. I don't own a single processor machine any more do you?
will be so but I have never seen a case of it with Sun's JVM. It is
not required to be invisible, it just may be. I would really like to
be able to create a program that could demonstrate a lack of
visibility across threads.
In any case the OPs problem is easily solved by synchronizing access
to the data.
AIUI, the advice "do all GUI work on the EDT" applies to drawing
BufferedImages, too.
--
Knute Johnson
email s/nospam/knute2009/
--
Posted via NewsDemon.com - Premium Uncensored Newsgroup Service
------->>>>>>http://www.NewsDemon.com<<<<<<------
Unlimited Access, Anonymous Accounts, Uncensored Broadband Access