IMHO, it depends on the use that the thread makes of that variable.
If you need to synchronize the access to that variable, it's better that the
variable is a private member, hence you create either a public getter or a
public setter (member functions) which they implements a synchronization
mechanism across a critical section object. The successive step could be to
bind those members to a public property, in order to make the "synchronized"
property almost similar to a common public member var.
If you don't need any synchronization (I have some doubts, but it could be
so), you can make it a normal public member. For example, if the main
application only writes the variable while the thread only reads the variable,
and you can change the value at any time without the thread incurs in glitches