ArthurHub / ArthurHub/HTML-Renderer
System.OutOfMemoryException when using HTMLPanel on Multi-Thread Application
- Ngôn ngữ chính
- C#
- Star
- 1.4k
- Fork
- 550
- Merge trung bình
- 14 ngày 9 giờ
- Pull request đã merge (30 ngày)
- 1
Mô tả
Hello guys, right now I'm testing the **HTMLPanel** for my application and it must has **multiples threads** working together. But actually I'm getting the **System.OutOfMemoryException**.
After lots of tries and errors, I figure out memory isn't the problem. So here is what I got until now:
When creating a new thread executing the function Application.Run() with inline creation of Form's object, everything goes cool like this:
`(new Thread(() => Application.Run(new Form1()))).Start();`
the Form1 constructor only creates the HTMLPanel and render something:
```
public Form1()
{
InitializeComponent();
HtmlPanel Panel = new HtmlPanel();
Panel.Text = "
Hello World
This is html rendered text
";Panel.Dock = DockStyle.Fill;
Controls.Add(Panel);
}
```
But when I first create the object and then I pass the object on a function, I get the error:
```
Form1 form = new Form1();
(new Thread(() => Application.Run(form))).Start();
```
Here is the full exception message:
`An unhandled exception of type 'System.OutOfMemoryException' occurred in System.Drawing.dll`
I have no idea what's going on behind the scenes through the windows memory, and if someone's may help me, I will be really grateful. Thanks community, that's a powerful HTML tool for C#.
**EDIT:**
Well, some weeks ago I discovered the problem happens when trying to access the Panel from another thread, it's a common **Cross-Thread** exception but since the Panel is inside an form, the Debuger reports a different message.
I solved my problem for a while creating the Form inside the new thread like:
`(new Thread(() => CreateForm()).Start();`
Then:
```
CreateForm()
{
Application.Run(new Form1());
}
```
So if the HTML Renderer's developer sees this Issue, probably the problem it's located on **Multi-Thread** treatment.
I hope I help with something.
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Đánh giá
Issue này chưa được đánh giá.