Please see my comment to the question. I have no gut to explain how wrong is what you do and how irrelevant is the "solution" Solution 1.
Just see my past answer and the answers referenced there:
.NET event on main thread[
^].
You are lost so much that I cannot be sure that you can understand my explanations, but please just try, ask some follow-up questions in case of doubt.
—SA